Skip to main content

common-contract-generation

契约生成技能,提供API契约文档的生成和管理能力

Quellinformationen

Repository
bage2014/study
Letzte Quellaktivität
24. Juni 2026 um 23:18
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
646
Forks
113

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
common-contract-generation
description
契约生成技能,提供API契约文档的生成和管理能力
trigger
需要定义API接口契约时
disable-when
项目已有完善的API契约或使用其他契约工具
category
backend
tags
["api","contract","swagger","openapi"]
# 契约生成技能 ## 功能描述 提供 API 契约文档的生成和管理能力,帮助团队定义和维护服务间的接口契约,确保前后端协作的一致性。 ## 何时使用 在以下情况调用此技能: - 需要设计新的 API 接口时 - 需要生成 OpenAPI/Swagger 文档时 - 需要验证契约一致性时 - 需要生成客户端 SDK 时 ## 核心功能 - **契约设计**:设计 RESTful API 接口契约 - **文档生成**:生成 OpenAPI/Swagger 文档 - **契约验证**:验证接口实现与契约的一致性 - **SDK生成**:生成客户端 SDK 和类型定义 - **Mock生成**:生成 Mock 数据和服务器 ## 输入参数 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | apiName | String | 是 | API 名称 | | endpoints | List\<Endpoint\> | 是 | 接口端点列表 | | format | String | 否 | 输出格式(openapi3/swagger2) | | version | String | 否 | API 版本 | ## 输出格式 ```json { "status": "SUCCESS", "apiName": "用户服务 API", "version": "1.0.0", "openapiSpec": "OpenAPI YAML/JSON 规范", "endpoints": [ { "path": "/api/users", "method": "GET", "summary": "获取用户列表", "request": {}, "response": {} } ], "validationResult": { "valid": true, "errors": [] }, "generatedFiles": ["openapi.yaml", "client-sdk.ts"] } ``` ## 契约设计流程 ``` 需求分析 → 接口设计 → 契约编写 → 契约验证 → 文档生成 → SDK生成 → Mock生成 ``` ### 详细步骤 1. **需求分析**:理解业务需求,确定接口功能 2. **接口设计**:设计 API 端点、参数和响应结构 3. **契约编写**:编写 OpenAPI 规范文档 4. **契约验证**:验证契约的语法和语义正确性 5. **文档生成**:生成可视化的 API 文档 6. **SDK生成**:生成客户端 SDK 和类型定义 7. **Mock生成**:生成 Mock 数据和服务器 ## 契约质量检查清单 | 检查项 | 说明 | 状态 | |--------|------|------| | 路径规范 | API 路径是否符合 REST 规范 | ✅/❌ | | HTTP方法 | 是否使用正确的 HTTP 方法 | ✅/❌ | | 参数完整 | 请求参数是否完整定义 | ✅/❌ | | 响应定义 | 响应结构是否完整定义 | ✅/❌ | | 错误处理 | 是否定义错误响应 | ✅/❌ | | 状态码 | HTTP 状态码是否正确使用 | ✅/❌ | | 版本管理 | 是否有版本控制策略 | ✅/❌ | | 文档完整 | 是否有必要的描述和示例 | ✅/❌ | ## 最佳实践指南 ### OpenAPI 规范示例 ```yaml openapi: 3.0.3 info: title: 用户服务 API description: 用户管理相关接口 version: 1.0.0 servers: - url: https://api.example.com/v1 paths: /users: get: summary: 获取用户列表 description: 获取所有用户的列表 parameters: - name: page in: query description: 页码 required: false schema: type: integer default: 1 responses: '200': description: 成功获取用户列表 content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/User' pagination: $ref: '#/components/schemas/Pagination' components: schemas: User: type: object properties: id: type: string format: uuid email: type: string format: email name: type: string required: - id - email ``` ### REST API 设计规范 1. **路径命名**:使用小写字母和连字符,如 `/api/user-profiles` 2. **HTTP 方法**: - GET:获取资源 - POST:创建资源 - PUT:更新完整资源 - PATCH:更新部分资源 - DELETE:删除资源 3. **状态码**: - 200:成功获取/更新 - 201:成功创建 - 204:成功删除(无内容) - 400:请求参数错误 - 401:未认证 - 403:无权限 - 404:资源不存在 - 500:服务器错误 ### 错误响应格式 ```yaml components: schemas: ErrorResponse: type: object properties: code: type: string description: 错误代码 message: type: string description: 错误消息 details: type: array items: type: string description: 详细错误信息 required: - code - message ``` ## 契约管理策略 ### 版本控制 | 策略 | 说明 | 适用场景 | |------|------|----------| | URL 版本 | `/v1/users` | 简单直接,便于调试 | | Header 版本 | `Accept-Version: 1.0` | 保持 URL 简洁 | | Media Type 版本 | `Accept: application/vnd.example.v1+json` | 符合 REST 最佳实践 | ### 契约演进 1. **向后兼容变更**:添加新字段、新端点 2. **非向后兼容变更**:修改现有字段、删除字段、删除端点 3. **版本升级策略**:使用新版本号,保持旧版本可用 ## 核心组件 | 组件 | 职责 | 描述 | |------|------|------| | ContractDesigner | 契约设计器 | 设计 API 接口契约 | | SpecGenerator | 规范生成器 | 生成 OpenAPI 规范 | | ContractValidator | 契约验证器 | 验证契约一致性 | | SdkGenerator | SDK 生成器 | 生成客户端 SDK | | MockGenerator | Mock 生成器 | 生成 Mock 数据 | ## 配置要求 ### 环境变量 | 变量名 | 说明 | 默认值 | |--------|------|--------| | CONTRACT_FORMAT | 默认输出格式 | openapi3 | | API_VERSION | 默认 API 版本 | 1.0.0 | ### 配置文件 ```yaml contract: format: openapi3 version: 1.0.0 output: spec: openapi.yaml docs: docs/api sdk: - language: typescript output: src/client - language: java output: client/java ``` ## 扩展指南 ### 添加新语言 SDK 支持 1. 创建对应语言的 SDK 生成器 2. 定义代码模板和映射规则 3. 添加 SDK 生成配置 ### 添加自定义验证规则 1. 在验证器中添加新规则 2. 定义规则的检查逻辑和错误消息 3. 更新契约质量检查清单 ## 触发条件
Auf GitHub ansehen