1. OpenAPI 契约基础

1.1 OpenAPI 规范简介

OpenAPI 规范(原 Swagger 规范)是用于描述 HTTP API 的接口描述语言,采用 JSON 或 YAML 格式编写。它定义了一套标准化的元数据结构,使人类和机器都能理解 API 的能力、输入参数、响应格式、认证方式等核心要素。

核心版本演进: OpenAPI 2.0(Swagger 2.0)→ OpenAPI 3.0(引入 server、components、securitySchemes 重构)→ OpenAPI 3.1(兼容 JSON Schema 2020-12,支持描述 WebSocket 和 Webhook)。
规范要素 说明 示例字段
openapi 规范版本号 3.0.3
info API 元信息 title, version, description
servers 服务端点列表 url, description
paths 路径与操作 get, post, parameters
components 可复用组件 schemas, responses, parameters
security 全局安全策略 bearerAuth, apiKey
openapi: "3.0.3"
info:
  title: 用户服务 API
  version: "1.0.0"
  description: 提供用户注册、登录、信息查询能力
servers:
  - url: https://api.example.com/v1
paths:
  /users/{userId}:
    get:
      summary: 获取用户信息
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: 成功返回用户对象
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User"
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string

1.2 契约驱动开发理念

契约驱动开发(Contract-First Development)将 API 契约作为团队协作的“第一公民”。在编写任何实现代码之前,先由前后端、平台、测试团队共同定义并评审 OpenAPI 契约文件,再基于契约并行开发。

关键原则: 契约即真相来源(Source of Truth)。所有客户端、服务端、网关、文档、测试用例都从同一份 OpenAPI 文件生成或校验,消除信息不对称。
  1. 先契约,后实现 — 团队围绕 YAML/JSON 契约讨论接口语义,而非口头约定或文档截图。
  2. 契约即文档 — 通过 Swagger UI、Redoc 等工具自动生成交互式文档,保持文档与实现同步。
  3. 契约即测试 — 使用 Dredd、Schemathesis 等工具对实现进行契约合规性测试,确保不偏离约定。
  4. 契约即模拟 — 基于契约生成 Mock Server,前端可在后端未完成时独立开发调试。
契约驱动开发流程 1. 定义 OpenAPI 契约 2a. 后端实现 2b. 前端/Mock 2c. 测试用例 3. 契约合规性验证 ← 上一章 📖 返回目录 下一章 →