Files
junhong_cmp_fiber/openspec/changes/archive/2026-01-09-auto-generate-openapi-docs/proposal.md
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

32 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.go``internal/routes/registry.go`
### Breaking changes
无破坏性变更。现有的手动生成方式(`make docs`)仍然可以使用。