mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-11 02:33:51 +08:00
重构 ccw cli 模板系统: - 新增 template-discovery.ts 模块,支持扁平化模板自动发现 - 添加 --rule <template> 选项,自动加载 protocol 和 template - 模板目录从嵌套结构 (prompts/category/file.txt) 迁移到扁平结构 (prompts/category-function.txt) - 更新所有 agent/command 文件,使用 $PROTO $TMPL 环境变量替代 $(cat ...) 模式 - 支持模糊匹配:--rule 02-review-architecture 可匹配 analysis-review-architecture.txt 其他更新: - Dashboard: 添加 Claude Manager 和 Issue Manager 页面 - Codex-lens: 增强 chain_search 和 clustering 模块 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
267 lines
6.8 KiB
Plaintext
267 lines
6.8 KiB
Plaintext
生成符合 RESTful 规范的完整 Swagger/OpenAPI API 文档。
|
||
|
||
## 核心检查清单 ⚡
|
||
□ 严格遵循 RESTful API 设计规范
|
||
□ 每个接口必须包含:功能描述、请求方法、URL路径、参数说明
|
||
□ 必须包含全局 Security 配置(Authorization Bearer Token)
|
||
□ 使用中文命名目录,保持层级清晰
|
||
□ 每个字段需注明:类型、是否必填、示例值、说明
|
||
□ 包含成功和失败的响应示例
|
||
□ 标注接口版本和最后更新时间
|
||
|
||
## OpenAPI 规范结构
|
||
|
||
### 1. 文档信息 (info)
|
||
```yaml
|
||
openapi: 3.0.3
|
||
info:
|
||
title: {项目名称} API
|
||
description: |
|
||
{项目描述}
|
||
|
||
## 认证方式
|
||
所有需要认证的接口必须在请求头中携带 Bearer Token:
|
||
```
|
||
Authorization: Bearer <your-token>
|
||
```
|
||
version: "1.0.0"
|
||
contact:
|
||
name: API 支持
|
||
email: api-support@example.com
|
||
license:
|
||
name: MIT
|
||
```
|
||
|
||
### 2. 服务器配置 (servers)
|
||
```yaml
|
||
servers:
|
||
- url: https://api.example.com/v1
|
||
description: 生产环境
|
||
- url: https://staging-api.example.com/v1
|
||
description: 测试环境
|
||
- url: http://localhost:3000/v1
|
||
description: 开发环境
|
||
```
|
||
|
||
### 3. 全局安全配置 (security)
|
||
```yaml
|
||
components:
|
||
securitySchemes:
|
||
bearerAuth:
|
||
type: http
|
||
scheme: bearer
|
||
bearerFormat: JWT
|
||
description: |
|
||
JWT Token 认证
|
||
|
||
获取方式:调用 POST /auth/login 接口
|
||
有效期:24小时
|
||
刷新:调用 POST /auth/refresh 接口
|
||
|
||
security:
|
||
- bearerAuth: []
|
||
```
|
||
|
||
### 4. 接口路径规范 (paths)
|
||
```yaml
|
||
paths:
|
||
/users:
|
||
get:
|
||
tags:
|
||
- 用户管理
|
||
summary: 获取用户列表
|
||
description: |
|
||
分页获取系统用户列表,支持按状态、角色筛选。
|
||
|
||
**适用环境**: 开发、测试、生产
|
||
**前置条件**: 需要管理员权限
|
||
operationId: listUsers
|
||
security:
|
||
- bearerAuth: []
|
||
parameters:
|
||
- name: page
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: integer
|
||
default: 1
|
||
minimum: 1
|
||
description: 页码(从1开始)
|
||
example: 1
|
||
- name: limit
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: integer
|
||
default: 20
|
||
minimum: 1
|
||
maximum: 100
|
||
description: 每页数量
|
||
example: 20
|
||
responses:
|
||
'200':
|
||
description: 成功获取用户列表
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/UserListResponse'
|
||
example:
|
||
code: 0
|
||
message: success
|
||
data:
|
||
items:
|
||
- id: "usr_123"
|
||
email: "user@example.com"
|
||
name: "张三"
|
||
total: 100
|
||
page: 1
|
||
limit: 20
|
||
'401':
|
||
$ref: '#/components/responses/UnauthorizedError'
|
||
'403':
|
||
$ref: '#/components/responses/ForbiddenError'
|
||
```
|
||
|
||
### 5. 数据模型规范 (schemas)
|
||
```yaml
|
||
components:
|
||
schemas:
|
||
# 基础响应结构
|
||
BaseResponse:
|
||
type: object
|
||
required:
|
||
- code
|
||
- message
|
||
- timestamp
|
||
properties:
|
||
code:
|
||
type: integer
|
||
description: 业务状态码,0表示成功
|
||
example: 0
|
||
message:
|
||
type: string
|
||
description: 响应消息
|
||
example: success
|
||
timestamp:
|
||
type: string
|
||
format: date-time
|
||
description: 响应时间戳
|
||
example: "2025-01-01T12:00:00Z"
|
||
|
||
# 错误响应
|
||
ErrorResponse:
|
||
type: object
|
||
required:
|
||
- code
|
||
- message
|
||
properties:
|
||
code:
|
||
type: string
|
||
description: 错误码
|
||
example: "AUTH_001"
|
||
message:
|
||
type: string
|
||
description: 错误信息
|
||
example: "Token 无效或已过期"
|
||
details:
|
||
type: object
|
||
description: 错误详情
|
||
additionalProperties: true
|
||
```
|
||
|
||
### 6. 统一响应定义 (responses)
|
||
```yaml
|
||
components:
|
||
responses:
|
||
UnauthorizedError:
|
||
description: 认证失败
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
example:
|
||
code: "AUTH_001"
|
||
message: "Token 无效或已过期"
|
||
ForbiddenError:
|
||
description: 权限不足
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
example:
|
||
code: "AUTH_003"
|
||
message: "权限不足,需要管理员角色"
|
||
NotFoundError:
|
||
description: 资源不存在
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
example:
|
||
code: "BIZ_002"
|
||
message: "资源不存在"
|
||
ValidationError:
|
||
description: 参数验证失败
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ErrorResponse'
|
||
example:
|
||
code: "PARAM_001"
|
||
message: "参数格式错误"
|
||
details:
|
||
field: "email"
|
||
reason: "邮箱格式不正确"
|
||
```
|
||
|
||
## 接口文档必填项
|
||
|
||
每个接口必须包含:
|
||
|
||
1. **基本信息**
|
||
- tags: 所属模块(中文)
|
||
- summary: 一句话描述
|
||
- description: 详细说明(含适用环境、前置条件)
|
||
- operationId: 唯一操作标识
|
||
|
||
2. **安全配置**
|
||
- security: 认证要求
|
||
|
||
3. **参数定义**
|
||
- name: 参数名
|
||
- in: 位置 (path/query/header/cookie)
|
||
- required: 是否必填
|
||
- schema: 类型定义(含 default, minimum, maximum)
|
||
- description: 参数说明
|
||
- example: 示例值
|
||
|
||
4. **响应定义**
|
||
- 200: 成功响应(含完整示例)
|
||
- 400: 参数错误
|
||
- 401: 认证失败
|
||
- 403: 权限不足
|
||
- 404: 资源不存在(如适用)
|
||
- 500: 服务器错误
|
||
|
||
5. **版本信息**
|
||
- x-version: 接口版本
|
||
- x-updated: 最后更新时间
|
||
|
||
## 错误码规范
|
||
|
||
| 前缀 | 类别 | HTTP状态码 | 说明 |
|
||
|------|------|------------|------|
|
||
| AUTH_ | 认证错误 | 401/403 | 身份验证相关 |
|
||
| PARAM_ | 参数错误 | 400 | 请求参数验证 |
|
||
| BIZ_ | 业务错误 | 409/422 | 业务逻辑相关 |
|
||
| SYS_ | 系统错误 | 500/503 | 服务器异常 |
|
||
|
||
## RESTful 设计规范
|
||
|
||
1. **URL 命名**: 使用复数名词,小写,连字符分隔
|
||
2. **HTTP 方法**: GET(查询)、POST(创建)、PUT(更新)、DELETE(删除)、PATCH(部分更新)
|
||
3. **状态码**: 正确使用 2xx/3xx/4xx/5xx
|
||
4. **分页**: 使用 page/limit 或 offset/limit
|
||
5. **筛选**: 使用查询参数
|
||
6. **版本**: URL 路径 (/v1/) 或 请求头
|