All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m32s
主要改进: 1. 新增 docs/api-documentation-guide.md 详细文档指南 2. 在 AGENTS.md 中添加路由注册规范章节 3. 更新 README.md 文档目录结构 路由注册改进: - 统一使用 Register() 函数注册路由并自动生成文档 - 所有接口必须指定 RouteSpec(Summary, Tags, Input, Output, Auth) - 修复 docs.go 和 gendocs/main.go 使用 RegisterRoutesWithDoc 统一注册 DTO 规范更新: - shop_dto.go 和 shop_account_dto.go 补充完整的 description 标签 - 所有枚举字段必须列出可能值和中文说明 文档生成优化: - admin-openapi.yaml 自动生成更新 - 健康检查和任务管理接口加入文档 - H5 认证接口完整文档化 规范文档管理: - 添加规范文档管理流程说明 - 详细文档放在 docs/ 目录 - AGENTS.md 只保留核心规则和引导链接
55 lines
1.8 KiB
Go
55 lines
1.8 KiB
Go
package main
|
||
|
||
import (
|
||
"github.com/gofiber/fiber/v2"
|
||
"go.uber.org/zap"
|
||
|
||
"github.com/break/junhong_cmp_fiber/internal/bootstrap"
|
||
"github.com/break/junhong_cmp_fiber/internal/handler/admin"
|
||
"github.com/break/junhong_cmp_fiber/internal/handler/h5"
|
||
"github.com/break/junhong_cmp_fiber/internal/routes"
|
||
"github.com/break/junhong_cmp_fiber/pkg/openapi"
|
||
)
|
||
|
||
// generateOpenAPIDocs 生成 OpenAPI 文档
|
||
// outputPath: 文档输出路径
|
||
// logger: 日志记录器
|
||
// 生成失败时记录错误但不影响程序继续运行
|
||
func generateOpenAPIDocs(outputPath string, logger *zap.Logger) {
|
||
// 1. 创建生成器
|
||
adminDoc := openapi.NewGenerator("君鸿卡管系统 API", "1.0.0")
|
||
|
||
// 2. 创建临时 Fiber App 用于路由注册
|
||
app := fiber.New()
|
||
|
||
// 3. 创建 Handler(使用 nil 依赖,因为只需要路由结构)
|
||
adminAuthHandler := admin.NewAuthHandler(nil, nil)
|
||
h5AuthHandler := h5.NewAuthHandler(nil, nil)
|
||
accHandler := admin.NewAccountHandler(nil)
|
||
roleHandler := admin.NewRoleHandler(nil)
|
||
permHandler := admin.NewPermissionHandler(nil)
|
||
shopHandler := admin.NewShopHandler(nil)
|
||
shopAccHandler := admin.NewShopAccountHandler(nil)
|
||
|
||
handlers := &bootstrap.Handlers{
|
||
AdminAuth: adminAuthHandler,
|
||
H5Auth: h5AuthHandler,
|
||
Account: accHandler,
|
||
Role: roleHandler,
|
||
Permission: permHandler,
|
||
Shop: shopHandler,
|
||
ShopAccount: shopAccHandler,
|
||
}
|
||
|
||
// 4. 注册所有路由到文档生成器
|
||
routes.RegisterRoutesWithDoc(app, handlers, &bootstrap.Middlewares{}, adminDoc)
|
||
|
||
// 6. 保存规范到指定路径
|
||
if err := adminDoc.Save(outputPath); err != nil {
|
||
logger.Error("生成 OpenAPI 文档失败", zap.String("path", outputPath), zap.Error(err))
|
||
return
|
||
}
|
||
|
||
logger.Info("OpenAPI 文档生成成功", zap.String("path", outputPath))
|
||
}
|