46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
package main
|
||
|
||
import (
|
||
"log"
|
||
"path/filepath"
|
||
|
||
"github.com/gofiber/fiber/v2"
|
||
|
||
"github.com/break/junhong_cmp_fiber/internal/bootstrap"
|
||
"github.com/break/junhong_cmp_fiber/internal/handler/admin"
|
||
"github.com/break/junhong_cmp_fiber/internal/routes"
|
||
"github.com/break/junhong_cmp_fiber/pkg/openapi"
|
||
)
|
||
|
||
func main() {
|
||
// 1. 创建生成器
|
||
adminDoc := openapi.NewGenerator("Admin API", "1.0")
|
||
|
||
// 2. 模拟 Fiber App
|
||
app := fiber.New()
|
||
|
||
// 3. 模拟 Handler
|
||
// 我们创建一个伪造的 handler。因为我们不执行请求,nil 依赖是可以的。
|
||
accHandler := admin.NewAccountHandler(nil)
|
||
roleHandler := admin.NewRoleHandler(nil)
|
||
permHandler := admin.NewPermissionHandler(nil)
|
||
|
||
handlers := &bootstrap.Handlers{
|
||
Account: accHandler,
|
||
Role: roleHandler,
|
||
Permission: permHandler,
|
||
}
|
||
|
||
// 4. 注册路由
|
||
adminGroup := app.Group("/api/admin")
|
||
routes.RegisterAdminRoutes(adminGroup, handlers, adminDoc, "/api/admin")
|
||
|
||
// 5. 保存规范
|
||
outputFile := "./docs/admin-openapi.yaml"
|
||
if err := adminDoc.Save(outputFile); err != nil {
|
||
log.Fatalf("保存规范失败: %v", err)
|
||
}
|
||
|
||
absPath, _ := filepath.Abs(outputFile)
|
||
log.Printf("成功在以下位置生成 OpenAPI 规范: %s", absPath)
|
||
} |