OpenAPI 规范 v3.1.0
OpenAPI 规范 v3.1.0
1. OpenAPI 规范
2. 简介
3. 定义
4. 规范
4.1 版本
4.2 格式
4.3 文档结构
4.4 数据类型
4.5 富文本格式化
4.6 URI 中的相对引用
4.7 URL 中的相对引用
4.8 模式
4.8.1 OpenAPI 对象
4.8.2 Info 对象
4.8.3 Contact 对象
4.8.4 License 对象
4.8.5 Server 对象
4.8.6 Server Variable 对象
4.8.7 Components 对象
4.8.8 Paths 对象
4.8.9 Path Item 对象
4.8.10 Operation 对象
4.8.11 External Documentation 对象
4.8.12 Parameter 对象
4.8.13 Request Body 对象
4.8.14 Media Type 对象
4.8.15 Encoding 对象
4.8.16 Responses 对象
4.8.17 Response 对象
4.8.18 Callback 对象
4.8.19 Example 对象
4.8.20 Link 对象
4.8.21 Header 对象
4.8.22 Tag 对象
4.8.23 Reference 对象
4.8.24 Schema 对象
4.8.25 Discriminator 对象
4.8.26 XML 对象
4.8.27 Security Scheme 对象
4.8.28 OAuth Flows 对象
4.8.29 OAuth Flow 对象
4.8.30 Security Requirement 对象
4.9 规范扩展
4.10 安全过滤
4.8.18 Callback 对象
创建时间: 2025-05-29 16:38
与父操作相关的可能的带外回调的映射。映射中的每个值都是一个路径项对象,它描述了一组可能由 API 提供者发起的请求和预期的响应。用于标识路径项对象的键值是在运行时计算的表达式,用于标识用于回调操作的 URL。要描述来自 API 提供者的传入请求,使其独立于其他 API 调用,请使用webhooks
字段。
4.8.18.1 模式化字段
字段模式 | 类型 | 描述 |
---|---|---|
{表达式} | 路径项对象 引用对象 | 用于定义回调请求和预期响应的路径项对象或对它的引用。提供了完整示例。 |
此对象*可以使用 规范扩展 进行扩展。
4.8.18.2 键表达式
用于标识路径项对象的键是一个运行时表达式,可以在运行时 HTTP 请求/响应的上下文中进行计算,以标识用于回调请求的 URL。一个简单的例子可能是$request.body#/url
。但是,使用运行时表达式可以访问完整的 HTTP 消息。这包括访问 JSON 指针[RFC6901]可以引用的主体任何部分。
例如,给定以下 HTTP 请求
POST /subscribe/myevent?queryUrl=https://clientdomain.com/stillrunning HTTP/1.1
Host: example.org
Content-Type: application/json
Content-Length: 187
{
"failedUrl" : "https://clientdomain.com/failed",
"successUrls" : [
"https://clientdomain.com/fast",
"https://clientdomain.com/medium",
"https://clientdomain.com/slow"
]
}
201 Created
Location: https://example.org/subscription/1
以下示例显示了各种表达式的计算方式,假设回调操作具有名为eventType
的路径参数和名为queryUrl
的查询参数。
表达式 | 值 |
---|---|
$url | https://example.org/subscribe/myevent?queryUrl=https://clientdomain.com/stillrunning |
$method | POST |
$request.path.eventType | myevent |
$request.query.queryUrl | https://clientdomain.com/stillrunning |
$request.header.content-Type | application/json |
$request.body#/failedUrl | https://clientdomain.com/failed |
$request.body#/successUrls/2 | https://clientdomain.com/medium |
$response.header.Location | https://example.org/subscription/1 |
4.8.18.3 Callback 对象示例
以下示例使用用户提供的queryUrl
查询字符串参数来定义回调 URL。这是一个如何使用回调对象来描述与订阅操作相关的 WebHook 回调以启用 WebHook 注册的示例。
myCallback:
'{$request.query.queryUrl}':
post:
requestBody:
description: Callback payload
content:
'application/json':
schema:
$ref: '#/components/schemas/SomePayload'
responses:
'200':
description: callback successfully processed
以下示例显示了一个回调,其中服务器是硬编码的,但查询字符串参数是从请求主体中的id
和email
属性填充的。
transactionCallback:
'http://notificationServer.com?transactionId={$request.body#/id}&email={$request.body#/email}':
post:
requestBody:
description: Callback payload
content:
'application/json':
schema:
$ref: '#/components/schemas/SomePayload'
responses:
'200':
description: callback successfully processed
最后更新: -