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) }