Files
huang 6fc90abeb6 实现服务启动时自动生成OpenAPI文档
主要变更:
1. 新增 cmd/api/docs.go 实现文档自动生成逻辑
2. 修改 cmd/api/main.go 在服务启动时调用文档生成
3. 重构 cmd/gendocs/main.go 提取生成函数
4. 更新 .gitignore 忽略自动生成的 openapi.yaml
5. 新增 Makefile 支持 make docs 命令
6. OpenSpec 框架更新和变更归档

功能特性:
- 服务启动时自动生成 OpenAPI 文档到项目根目录
- 保留独立的文档生成工具 (make docs)
- 生成失败时记录错误但不影响服务启动
- 所有代码已通过 openspec validate --strict 验证

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-09 12:25:50 +08:00

1.4 KiB
Raw Permalink Blame History

Change: 服务启动时自动生成OpenAPI文档

Why

当前项目已经实现了OpenAPI文档生成功能但需要手动执行 make docs 命令才能生成文档文件。这导致以下问题:

  • 部署服务时容易忘记生成文档导致文档与实际API不同步
  • 开发过程中需要频繁手动执行命令来更新文档
  • 无法保证文档与当前运行服务的API定义完全一致

通过在服务启动时自动生成OpenAPI文档可以确保文档始终与当前服务保持同步提升开发和部署体验。

What Changes

  • cmd/api/main.go 的初始化流程中添加OpenAPI文档自动生成功能
  • 将文档输出到项目根目录的固定位置(./openapi.yaml
  • 生成失败时记录错误日志但不影响服务启动
  • 复用现有的文档生成逻辑(pkg/openapi/internal/routes/ 的Registry机制
  • 移除或保留 cmd/gendocs/main.go 作为备用工具(供离线生成文档使用)

Impact

Affected specs

  • NEW: openapi-generation - 新增OpenAPI文档自动生成规范

Affected code

  • cmd/api/main.go - 添加文档生成调用
  • 可能需要提取 cmd/gendocs/main.go 中的生成逻辑为可复用函数
  • 无需修改现有的 pkg/openapi/generator.gointernal/routes/registry.go

Breaking changes

无破坏性变更。现有的手动生成方式(make docs)仍然可以使用。