ERPTurbo_Poster/openspec/changes/archive/2025-11-14-add-swagger-docs/add-swagger-docs/design.md
shenyifei dc940d2598 feat(api): 添加海报和PDF生成功能
- 新增海报生成接口,支持从网页URL或HTML内容生成海报图像
- 新增PDF生成接口,支持从网页URL或HTML内容生成PDF文档
- 添加Swagger API文档注释,完善接口描述和参数说明
- 实现HTML内容参数支持,允许直接传入HTML结构生成海报/PDF
- 添加输入验证和标准化响应格式
- 引入DOMPurify库对HTML内容进行安全过滤
- 更新环境变量配置,支持API密钥认证和CORS设置
- 优化上传逻辑,统一返回标准响应结构
- 添加构建脚本支持Docker镜像打包和推送
2025-11-20 17:51:35 +08:00

42 lines
1.3 KiB
Markdown
Raw Permalink 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.

## Context
当前项目缺乏API文档开发者需要通过阅读代码来理解API端点的使用方法。添加Swagger将提供交互式文档改善开发者体验。
## Goals / Non-Goals
- Goals:
- 为所有API端点提供交互式文档
- 自动化API文档生成
- 提供API使用示例
- 支持API端点测试
- Non-Goals:
- 完全重构API设计
- 添加其他文档类型(如用户指南)
## Decisions
- Decision: 使用Swagger UI和swagger-jsdoc组合
- Why: 提供易于集成的交互式API文档可以从代码注释生成文档
- Alternative: 手动编写OpenAPI规范但维护成本高
- Decision: 将Swagger UI部署在 /api-docs 路径下
- Why: 遵循行业惯例,避免与现有端点冲突
- Alternative: /docs 或 /swagger但 /api-docs 更明确
- Decision: 使用JSDoc注释样式添加API文档
- Why: 最小化代码侵入,保持文档在源代码中
- Alternative: 单独的规范文件,但不易维护
## Risks / Trade-offs
- 增加包大小 → 通过选择适当的Swagger库缓解
- 代码注释维护 → 与代码变更保持同步
- 安全考虑 → 确保生产环境中可以控制文档访问
## Migration Plan
1. 添加Swagger依赖到package.json
2. 配置Swagger设置和中间件
3. 为现有API端点添加文档注释
4. 验证所有端点的文档准确性