Skip to main content

common-contract-generation

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

Informações da origem

Repositório
bage2014/study
Última atividade na origem
24 de junho de 2026 às 23:18
Idioma detectado do SKILL.md
chinês
Estrelas
646
Forks
113

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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. 更新契约质量检查清单 ## 触发条件
Ver no GitHub