名称: openapi-design 描述: 基于OpenAPI 3.1规范的合同优先REST API设计 允许工具: Read, Glob, Grep, Write, Edit, mcp__perplexity__search, mcp__context7__resolve-library-id, mcp__context7__query-docs
OpenAPI设计技能
何时使用此技能
在以下情况下使用此技能:
- 设计REST APIs - 使用OpenAPI 3.1进行合同优先的API设计
- 定义API契约 - 模式、路径、参数、响应
- API最佳实践 - 命名约定、状态码、版本控制
强制性:文档优先方法
在创建OpenAPI规范之前:
- 调用
docs-management技能以获取API设计模式 - 通过MCP服务器验证OpenAPI 3.1语法(使用context7获取最新规范)
- 所有指导基于OpenAPI 3.1规范
合同优先方法
为什么合同优先?
- 实现前设计:在编码前思考API
- 并行开发:前端和后端可以同时工作
- 清晰契约:对所有方明确的规范
- 自动生成:生成客户端、服务器、文档
- 验证:根据模式验证请求/响应
工作流
需求 → OpenAPI规范 → 评审 → 生成 → 实现 → 测试
↑ ↓
←←←←←←←←←←←←← 根据需要迭代 ←←←←←←←←←←←←←←←←←←←←←←
OpenAPI 3.1结构概述
openapi: 3.1.0
info:
title: API标题
version: 1.0.0
description: API描述
servers:
- url: https://api.example.com/v1
description: 生产环境
tags:
- name: Orders
description: 订单管理
paths:
# 定义端点 - 参见paths-definition.md
components:
schemas: { }
securitySchemes: { }
responses: { }
parameters: { }
完整模板:参见paths-definition.md
快速参考
HTTP方法
| 方法 | 目的 | 幂等性 |
|---|---|---|
| GET | 检索资源 | 是 |
| POST | 创建资源 | 否 |
| PUT | 替换资源 | 是 |
| PATCH | 部分更新 | 否 |
| DELETE | 删除资源 | 是 |
常见状态码
| 代码 | 用途 |
|---|---|
| 200 | 成功的GET、PUT、PATCH |
| 201 | 资源创建(POST) |
| 204 | 成功的DELETE |
| 400 | 错误请求 |
| 401 | 需要认证 |
| 404 | 资源未找到 |
| 422 | 验证错误 |
完整指导:参见design-best-practices.md
设计工作流
- 理解需求:需要什么操作?
- 设计资源:识别实体和关系
- 定义模式:创建可重用的组件模式
- 指定端点:定义路径和操作
- 添加安全:配置认证/授权
- 文档示例:添加请求/响应示例
- 验证:使用linting工具(如Spectral等)
- 评审:在实现前获取团队反馈
参考
根据需要加载:
| 参考 | 加载时机 |
|---|---|
| paths-definition.md | 定义REST端点、操作、参数 |
| components-definition.md | 创建模式、响应、安全方案 |
| design-best-practices.md | 评审命名、状态码、版本控制 |
相关技能(跨插件)
| 阶段 | 技能 | 插件 | 目的 |
|---|---|---|---|
| 设计 | openapi-design(此技能) |
formal-specification | 架构研究、模式选择 |
| 编写 | openapi-authoring |
spec-driven-development | 具体的YAML文件创建 |
| 治理 | contract-first-design |
spec-driven-development | API治理、代码生成 |
工作流: 设计(研究模式) → 编写(创建YAML) → 治理(执行契约)
外部参考
- OpenAPI 3.1规范 - 官方规范
- RFC 7231 - HTTP语义 - HTTP方法和状态码
- RFC 7807 - 问题详情 - 标准错误响应格式
- Spectral - OpenAPI linting工具
MCP研究
对于当前的OpenAPI模式和工具:
perplexity: "OpenAPI 3.1 specification" "REST API design patterns"
context7: "openapi"(用于官方文档)
ref: "OpenAPI规范示例" "JSON模式模式"
版本历史
- v2.0.0 (2026-01-17):重构为渐进披露模式
- 提取了3个参考文件(约500行)
- 中心从698行减少到约130行
- v1.0.0 (2025-12-26):初始发布
最后更新: 2026-01-17