基于 SOC 职业分类
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/10CG/aria-plugin --skill api-doc-generator命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
项目状态扫描与智能工作流推荐,十步循环的统一入口。 收集项目状态、分析变更、推荐最佳工作流、引导用户确认执行。 使用场景:"查看项目当前状态"、"我要提交代码"、"开发新功能"
十步循环 Phase C - 集成阶段执行器,编排 C.1-C.2 步骤。 使用场景:"执行集成阶段"、"Phase C"、"提交代码并创建 PR"
Aria 项目级配置加载器(内部基础设施)。 查找、解析、验证 .aria/config.json 并合并默认值。 此 Skill 不直接触发,由其他 Skills 引用以读取项目配置。
| name | api-doc-generator |
| description | 从代码生成API文档和OpenAPI规范,支持多种后端框架。 使用场景:为REST API项目生成OpenAPI 3.0规范、创建或更新API接口文档。 |
| argument-hint | [framework] |
| disable-model-invocation | true |
| user-invocable | true |
| allowed-tools | Read, Glob, Grep, Write |
版本: 2.0.0 | 最新更新: 2025-12-10
✅ 使用场景:
❌ 不使用场景:
步骤1: 扫描代码库
→ 使用 Grep 查找路由定义
→ 使用 Glob 定位API文件
步骤2: 分析API端点
→ 提取HTTP方法、路径、参数、schema
步骤3: 生成文档
→ 使用 OPENAPI_TEMPLATE.yaml 生成OpenAPI规范
→ 使用 MARKDOWN_TEMPLATE.md 生成可读文档
| 语言/平台 | 框架 | 路由标识 |
|---|---|---|
| Python | FastAPI, Flask, Django | @app.route, @router.get, path() |
| Node.js | Express, NestJS | app.get(), @Get(), router.post() |
| Dart/Flutter | Shelf, Serverpod | Router(), @Route() |
| 其他 | 任何RESTful API | 标准HTTP方法定义 |
使用 Grep 工具搜索路由定义:
# 搜索路由装饰器和定义
grep -r "@route\|@app\|@api\|@Get\|@Post\|@Put\|@Delete" --include="*.py" --include="*.js" --include="*.dart"
使用 Glob 工具定位API文件:
# 查找常见的API文件
glob "**/*api*.py"
glob "**/*routes*.py"
glob "**/*controller*.dart"
对每个发现的端点,使用 Read 工具读取代码并提取:
/api/users/{id}{id}, {userId}?page=1&limit=10使用 Write 工具创建 openapi.yaml,基于 OPENAPI_TEMPLATE.yaml 模板:
模板位置: .claude/skills/api-doc-generator/OPENAPI_TEMPLATE.yaml
关键替换:
${PROJECT_NAME} → 项目名称${PROJECT_DESCRIPTION} → 项目描述使用 Write 工具创建 API.md,基于 MARKDOWN_TEMPLATE.md 模板:
模板位置: .claude/skills/api-doc-generator/MARKDOWN_TEMPLATE.md
包含内容:
文件: OPENAPI_TEMPLATE.yaml
特点:
使用方法:
${PROJECT_NAME} 等占位符文件: MARKDOWN_TEMPLATE.md
特点:
使用方法:
所有API响应使用统一格式:
{
"success": true/false,
"data": { ... }, // 成功时
"error": { ... }, // 失败时
"message": "..." // 可选的消息
}
200 OK: 成功201 Created: 创建成功204 No Content: 删除成功400 Bad Request: 请求格式错误401 Unauthorized: 未认证403 Forbidden: 无权限404 Not Found: 资源不存在422 Unprocessable Entity: 验证失败500 Internal Server Error: 服务器错误GET /users # 获取列表
POST /users # 创建
GET /users/{id} # 获取单个
PUT /users/{id} # 更新
DELETE /users/{id} # 删除
在URL中包含版本号:
https://api.example.com/v1/users
https://api.example.com/v2/users
GET /users?page=1&limit=20
响应包含分页信息:
{
"items": [...],
"total": 100,
"page": 1,
"limit": 20,
"totalPages": 5
}
生成的OpenAPI文档可以在以下工具中使用:
# 使用swagger-cli验证
npx @apidevtools/swagger-cli validate openapi.yaml
# 使用spectral验证(更严格)
npx @stoplight/spectral-cli lint openapi.yaml
# 生成TypeScript客户端
npx @openapitools/openapi-generator-cli generate \
-i openapi.yaml \
-g typescript-axios \
-o ./sdk/typescript
# 生成Dart客户端
npx @openapitools/openapi-generator-cli generate \
-i openapi.yaml \
-g dart \
-o ./sdk/dart
# 使用prism创建mock服务器
npx @stoplight/prism-cli mock openapi.yaml
生成的文档包括:
userId 而非 idcreateUser 而非 addQ: 如何处理文件上传?
A: 在OpenAPI中使用 multipart/form-data content type:
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
Q: 如何定义可选参数?
A: 使用 required: false 和 nullable: true:
parameters:
- name: search
in: query
required: false
schema:
type: string
nullable: true
Q: 如何处理数组响应?
A: 使用 type: array 和 items:
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
本Skill遵循OpenAPI 3.0规范和RESTful API设计最佳实践。