实战

Claude Code 自动生成 OpenAPI 文档:从代码到 Swagger UI 一键完成

Claude Code 自动生成 OpenAPI(Swagger)文档完整教程:从现有代码逆向生成 OpenAPI 3.1 规范、为 FastAPI/Express/Gin 添加完整的 schema 注释、让 Claude 补全缺失的请求/响应 schema 定义、生成带真实示例值的 Swagger 文档、将 OpenAPI Spec 转为各语言客户端 SDK(openapi-generator)、保持文档与代码同步的 CI/CD 方案,以及从 Postman Collection 迁移到 OpenAPI 的方法。

2026/3/204分钟 阅读ClaudeEagle

API 文档往往是最难保持更新的部分。Claude Code 能从现有代码 自动生成和维护 OpenAPI 规范,让文档永远和代码保持同步。

从现有代码逆向生成 OpenAPI

你:读取 src/api/ 目录下的所有路由文件, 根据代码逆向生成完整的 OpenAPI 3.1 规范文档。 要求: - 提取所有 HTTP 方法、路径、请求参数 - 推断请求 Body 和响应的 JSON Schema - 为每个接口添加中文描述(从函数名/注释推断) - 包含认证方式(从代码中识别) - 生成真实的示例值(example 字段) - 保存到 docs/openapi.yaml Claude:[分析路由文件后生成]

生成的 OpenAPI 3.1 结构示例:

yaml
openapi: "3.1.0"
info:
  title: Task Manager API
  version: "1.0.0"
  description: 任务管理系统 REST API

servers:
  - url: https://api.example.com/v1
    description: 生产环境
  - url: http://localhost:8000/v1
    description: 本地开发

security:
  - BearerAuth: []

paths:
  /tasks:
    get:
      summary: 获取任务列表
      description: 返回当前用户的所有任务,支持按状态筛选
      tags: [任务管理]
      parameters:
        - name: status
          in: query
          description: 按状态筛选
          schema:
            type: string
            enum: [todo, in_progress, done]
          example: todo
      responses:
        "200":
          description: 成功
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Task"
              example:
                - id: "task-001"
                  title: "完成报告"
                  status: "in_progress"

components:
  schemas:
    Task:
      type: object
      required: [id, title, status]
      properties:
        id:
          type: string
          format: uuid
          example: "550e8400-e29b-41d4-a716-446655440000"
        title:
          type: string
          maxLength: 200
          example: "完成季度报告"
        status:
          type: string
          enum: [todo, in_progress, done]
        created_at:
          type: string
          format: date-time
          example: "2026-03-20T10:30:00Z"

  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

为 FastAPI 补全 Schema 注释

FastAPI 从 Pydantic 模型自动生成文档,让 Claude 补全缺失部分:

你:这些 Pydantic 模型缺少文档字段描述(description)和示例值(example), 帮我补全,让 Swagger UI 显示清晰: class TaskCreate(BaseModel): title: str description: str | None = None due_date: datetime | None = None priority: int = 3 Claude: from pydantic import BaseModel, Field from datetime import datetime class TaskCreate(BaseModel): title: str = Field( ..., description="任务标题", min_length=1, max_length=200, example="完成 Q1 技术报告" ) description: str | None = Field( None, description="任务详细描述(可选)", example="需要包含技术选型分析和实施计划" ) due_date: datetime | None = Field( None, description="截止日期(ISO 8601 格式,可选)", example="2026-03-31T18:00:00Z" ) priority: int = Field( 3, description="优先级,1(最高)到 5(最低)", ge=1, le=5, example=2 )

Express/Node.js 生成 OpenAPI

你:为这个 Express Router 生成 JSDoc 注释, 格式兼容 swagger-jsdoc 自动生成 OpenAPI 文档 router.get('/users/:id', authenticate, async (req, res) => { const user = await UserService.findById(req.params.id); res.json(user); }); Claude: /** * @swagger * /users/{id}: * get: * summary: 根据 ID 获取用户 * description: 返回指定 ID 的用户详细信息 * tags: [用户管理] * security: * - BearerAuth: [] * parameters: * - in: path * name: id * required: true * schema: * type: string * format: uuid * description: 用户 UUID * example: "550e8400-e29b-41d4-a716-446655440000" * responses: * 200: * description: 成功 * content: * application/json: * schema: * $ref: '#/components/schemas/User' * 401: * description: 未认证 * 404: * description: 用户不存在 */ router.get('/users/:id', authenticate, async (req, res) => {

生成客户端 SDK

OpenAPI Spec 生成后,用 openapi-generator 一键生成各语言 SDK:

bash
# 安装
npm install -g @openapitools/openapi-generator-cli

# 生成 TypeScript 客户端
openapi-generator-cli generate   -i docs/openapi.yaml   -g typescript-axios   -o sdk/typescript   --additional-properties=supportsES6=true

# 生成 Python 客户端
openapi-generator-cli generate   -i docs/openapi.yaml   -g python   -o sdk/python

# 让 Claude 帮你验证生成的 SDK 是否正确
claude "检查 sdk/typescript 目录,确认生成的 API 客户端与 openapi.yaml 是否一致"

CI/CD 文档同步

yaml
# .github/workflows/docs-sync.yml
# 每次合并到 main 时自动更新 OpenAPI 文档

- name: Sync API Docs
  env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
  run: |
    # 检测 API 路由文件是否有变更
    CHANGED=$(git diff HEAD~1 --name-only | grep -E "src/api|routes" || true)
    if [ -n "$CHANGED" ]; then
      claude -p "
      以下 API 文件有变更:$CHANGED
      请更新 docs/openapi.yaml 中对应的接口定义,
      保持其他部分不变,输出完整的更新后的 YAML
      " --output-format text > docs/openapi.yaml
      git add docs/openapi.yaml
      git commit -m "docs: auto-update OpenAPI spec"
    fi

来源:Claude Code 官方文档 - docs.anthropic.com/en/docs/claude-code

相关文章推荐

实战用 Claude Code 生成 API 文档:OpenAPI/Swagger 自动化完全指南用 Claude Code 自动生成 API 文档完整教程:从代码直接生成 OpenAPI 3.0 规范、Swagger UI 配置、Markdown 文档、SDK 代码示例,以及集成到 CI/CD 流水线保持文档同步更新的工作流。2026/3/15实战OpenClaw 与 Claude Code 协同使用实战:AI 聊天助手 + AI 编程助手的终极组合OpenClaw 与 Claude Code 协同使用的完整实战指南:两款工具的定位差异(OpenClaw=聊天AI助手框架,Claude Code=代码库直接操作的编程工具)、在 OpenClaw 中通过 exec 工具调用 Claude Code CLI(claude 命令)执行编程任务、把 OpenClaw 的 Telegram 消息转化为 Claude Code 任务(用自然语言描述→Claude Code执行→返回结果)、使用 OpenClaw Cron 定期触发 Claude Code 执行代码审查/依赖更新/测试/文档生成、CRS 代理在两者中的统一接入方案,以及常见的协同架构模式(主动触发/被动响应/定时执行)。2026/3/24实战Claude Code Shell 脚本自动化实战:用 AI 编写和调试复杂 Bash/Zsh 脚本Claude Code 辅助 Shell 脚本开发的完整指南:让 Claude 生成 Bash/Zsh 脚本的高效提示词、复杂脚本的调试方法(set -x 逐行追踪)、常见运维场景脚本(日志清理/备份/监控告警/批量操作)、跨平台兼容性处理(macOS vs Linux 差异)、脚本安全性检查(避免注入/权限最小化)、让 Claude 解释复杂 awk/sed/find 命令,以及将一次性脚本重构为可复用工具库的方法。2026/3/20实战Claude Code CI/CD 完全集成指南:GitHub Actions 自动化代码审查与测试Claude Code 与 CI/CD 流水线完整集成教程:GitHub Actions 中非交互模式(claude -p)调用、PR 自动代码审查 Workflow、自动测试生成、构建失败时的 AI 诊断、安全扫描集成、Claude API Key 的 Secrets 管理、控制成本的模型选择策略(PR 审查用 Sonnet/失败诊断用 Haiku),以及 GitLab CI 和 Jenkins 的适配方案。2026/3/20实战用 Claude Code 自动生成技术文档:README、API 文档、架构说明一键搞定Claude Code 自动生成技术文档完整指南:从代码库生成 README、基于源码生成 OpenAPI 文档、Mermaid 架构图、CHANGELOG、贡献指南,以及 Hooks 自动更新文档工作流。2026/3/16实战用 Claude Code 写 Python 脚本:自动化日常任务的 8 个实用场景用 Claude Code 编写 Python 自动化脚本实战:8 个高频场景(文件批处理/Excel 处理/API 调用/定时任务/数据清洗/发送通知/Web 爬取/PDF 处理),每个场景给出完整 Prompt 模板和代码结构。2026/3/14