APIGit
2023-06-15
OpenAPI 规范 (OAS) 提供了一种强大且标准化的方式来描述 API。该规范最有价值的功能之一是components
对象,允许在 API 中重用各种元素,确保一致性并减少冗余。
这 components
对象可以包含架构、参数、响应、标头、请求正文、安全方案和示例。此集中式容器可增强 API 定义的可重用性和可维护性。
模式定义请求和响应主体的结构。它们可以表示用户对象、错误消息结构或任何其他数据实体。
例子:
components:
schemas:
User:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
参数可以在多个操作中重复使用,例如路径中的 id 或分页的限制和偏移量。
例子:
components:
parameters:
userId:
name: userId
in: path
required: true
schema:
type: integer
limitParam:
name: limit
in: query
schema:
type: integer
default: 10
常见的响应结构(尤其是错误处理)可以定义一次并重复使用,从而确保一致的 API 行为。 例子:
components:
responses:
NotFound:
description: The specified resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
可能在不同端点之间使用的标准标头可以定义一次并重复使用。
例子:
components:
headers:
X-Rate-Limit:
description: The number of allowed requests in the current period
schema:
type: integer
定义常见的安全方案使您能够在 API 中重复使用它们,从而确保一致的安全实践。
例子:
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
为组件使用清晰、描述性的名称,让开发人员更容易理解和重用它们。例如,User 表示用户对象架构,NotFound 表示常见的 404 错误响应。
逻辑地组织您的组件,也许根据它们的类型(例如,响应,参数)或它们的领域(例如,身份验证,用户,产品)对它们进行分类。
虽然可重用性是关键,但粒度过大会使 API 规范的理解和维护变得复杂。平衡至关重要。
components:
schemas:
Error:
type: object
properties:
code:
type: integer
message:
type: string
paths:
/users:
get:
parameters:
- $ref: '#/components/parameters/limitParam'
- name: offset
in: query
schema:
type: integer
default: 0
paths:
/protected/resource:
get:
security:
- ApiKeyAuth: []
responses:
'200':
description: Success
有效地利用components
OAS 中的对象可以大大增强 API 规范的一致性和可维护性。通过遵循最佳实践并利用 APIGIT 直观的 API 编辑器,开发人员可以制定高效、可重复使用且组织良好的 API 定义。