| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package routers
- import (
- dataQuery "dbview/service/internal/modules/data_query"
- dqSer "dbview/service/internal/modules/data_query/service"
- "dbview/service/internal/modules/database_meta"
- dbSer "dbview/service/internal/modules/database_meta/service"
- storageRouter "dbview/service/internal/modules/db_conn_storage"
- storageService "dbview/service/internal/modules/db_conn_storage/service"
- connpool "dbview/service/internal/modules/connection_pool"
- "dbview/service/internal/common/manager/connection"
- storagemgr "dbview/service/internal/common/manager/storage"
- "dbview/service/internal/common/manager/task"
- "github.com/gin-gonic/gin"
- )
- // RegisterRoutes 注册所有模块路由(不依赖 bootstrap 包,避免导入环)
- func RegisterRoutes(engine *gin.Engine, storageManager interface{}, taskManager *task.Manager, connPool *connection.ConnectionPool) {
- // 1) 存储模块(db_conn_storage)
- if storageManager != nil {
- if typed, ok := storageManager.(storagemgr.StorageInterface); ok {
- storageService.Init(typed)
- }
- } else {
- storageService.Init(nil)
- panic("存储管理器未初始化成功")
- }
- storageRouter.RegisterRoutes(engine)
- // 2) 数据库操作模块(database_operations)
- // 创建 MetadataService:优先使用连接池(当 connPool 不为 nil 时)
- var metaSvc *dbSer.MetadataService
- if connPool != nil {
- metaSvc = dbSer.NewMetadataServiceWithPool(connPool)
- } else {
- // 回退到默认注入(此处传入 nils,实际应由具体 driver 注入)
- metaSvc = dbSer.NewMetadataService(nil, nil, nil, nil, nil)
- }
- database_meta.RegisterRoutes(engine, metaSvc)
- // 2.5) 连接池管理接口
- connpool.RegisterRoutes(engine, connPool)
- // 3) 数据查询模块(data_query):优先使用连接池创建 DataService
- var dataSvc *dqSer.DataService
- if connPool != nil && taskManager != nil {
- dataSvc = dqSer.NewDataService(dqSer.WithConnectionPool(connPool), dqSer.WithTaskManager(taskManager), dqSer.WithDataReader(nil))
- } else if connPool != nil {
- dataSvc = dqSer.NewDataService(dqSer.WithConnectionPool(connPool), dqSer.WithDataReader(nil))
- } else {
- dataSvc = dqSer.NewDataService(dqSer.WithDataReader(nil))
- }
- dataQuery.RegisterRoutes(engine, dataSvc)
- // 3) SQL 编辑器模块(sql_editor)
- // var sqlSvc *sqlService.SQLEditorService
- // if taskManager != nil {
- // sqlSvc = sqlService.NewSQLEditorService(nil, taskManager, nil)
- // } else {
- // sqlSvc = sqlService.NewSQLEditorService(nil, nil, nil)
- // }
- // sqlH := sqlHandler.NewSQLEditorHandler(sqlSvc, nil)
- // apiGroup := engine.Group("/api/v1")
- // sqleditor.RegisterSQLRoutes(apiGroup, sqlH)
- }
|