sdk_generate/internal/server/router/app.go

62 lines
1.3 KiB
Go

package router
import (
"sdk-generator/internal/config"
"sdk-generator/internal/entitys"
"sdk-generator/internal/service"
"github.com/gofiber/fiber/v2"
)
type AppModule struct {
cfg *config.Config
page *service.PageService
sdk *service.SDKService
}
func NewAppModule(
cfg *config.Config,
sdk *service.SDKService,
page *service.PageService,
) *AppModule {
return &AppModule{
cfg: cfg,
sdk: sdk,
page: page,
}
}
func (a *AppModule) Register(app fiber.Router) {
// 静态文件
app.Static("/static", "./web/static")
// 页面路由
app.Get("/", a.page.Index)
r := app.Group("api/v1/")
registerResponse(r)
r.Get("health", func(c *fiber.Ctx) error {
c.Response().SetBody([]byte("1"))
return nil
})
// API 路由
api := app.Group("/api/v1")
// 精炼文档
api.Post("/refine", vali(a.sdk.Refine, &entitys.RefineRequest{}))
// 精炼文档
api.Post("/refine/list", vali(a.sdk.ListRefine, &entitys.ListDocRequest{}))
// 精炼文档
api.Post("/refine/update", vali(a.sdk.UpdateRefine, &entitys.UpdateDocRequest{}))
// 上传文档生成代码
api.Post("/generate", vali(a.sdk.Generate, &entitys.GenerateRequest{}))
// 查询生成任务状态
api.Get("/tasks/:task_id", a.sdk.GetTaskStatus)
// 列出所有任务
api.Post("/tasks/list", vali(a.sdk.ListTasks, &entitys.ListTaskRequest{}))
}