package application import ( "git.sxidc.com/go-framework/baize/framework/core/api" "git.sxidc.com/go-framework/baize/framework/core/infrastructure" ) type App struct { // api实例 apiInstance *api.Api // 基础设施实例 infrastructureInstance *infrastructure.Infrastructure } // New 创建Application func New(api *api.Api, i *infrastructure.Infrastructure) *App { return &App{ apiInstance: api, infrastructureInstance: i, } } // Start 运行应用 // 参数: 无 // 返回值: // - 错误 func (app *App) Start() error { err := app.apiInstance.Start() if err != nil { return err } return nil } // Finish 终止应用 // 参数: 无 // 返回值: // - 错误 func (app *App) Finish() error { err := app.apiInstance.Finish() if err != nil { return err } return nil } // Api 获取Api实例 // 参数: 无 // 返回值: // - Api实例 func (app *App) Api() *api.Api { return app.apiInstance } // Infrastructure 获取Infrastructure实例 // 参数: 无 // 返回值: // - Infrastructure实例 func (app *App) Infrastructure() *infrastructure.Infrastructure { return app.infrastructureInstance } // ChooseRouter 选择Router // 参数: // - routerType: 路由类型,有两种 // - api.RouterRoot: 根路由 // - api.RouterPrefix: 带url前缀的路由 // // - version: 版本,用于获取基于上面两中路由够造的带有版本号的路由,传空字符串则选定上面两种路由本身 // 返回值: // - 选择的Router func (app *App) ChooseRouter(routerType string, version string) api.Router { return app.Api().ChooseRouter(routerType, version) }