-
Notifications
You must be signed in to change notification settings - Fork 9.1k
Callback feature #763
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Callback feature #763
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -453,6 +453,7 @@ Field Name | Type | Description | |
<a name="operationParameters"></a>parameters | [[Parameter Object](#parameterObject) <span>|</span> [Reference Object](#referenceObject)] | A list of parameters that are applicable for this operation. If a parameter is already defined at the [Path Item](#pathItemParameters), the new definition will override it, but can never remove it. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn). The list can use the [Reference Object](#referenceObject) to link to parameters that are defined at the [OpenAPI Object's parameters](#oasParameters). | ||
<a name="operationRequestBody"></a>requestBody | [[Request Body Object](#requestBodyObject) <span>|</span> [Reference Object](#referenceObject)] | The request body applicable for this operation. | ||
<a name="operationResponses"></a>responses | [Responses Object](#responsesObject) | **Required.** The list of possible responses as they are returned from executing this operation. | ||
<a name="operationCallbacks"></a>callback responses | [Callback Responses Object](#callbackObject) | The list of possible callback responses as they are returned from executing this operation. | ||
<a name="operationSchemes"></a>schemes | [`string`] | The transfer protocol for the operation. Values MUST be from the list: `"http"`, `"https"`, `"ws"`, `"wss"`. The value overrides the OpenAPI Object [`schemes`](#oasSchemes) definition. | ||
<a name="operationDeprecated"></a>deprecated | `boolean` | Declares this operation to be deprecated. Usage of the declared operation should be refrained. Default value is `false`. | ||
<a name="operationSecurity"></a>security | [[Security Requirement Object](#securityRequirementObject)] | A declaration of which security schemes are applied for this operation. The list of values describes alternative security schemes that can be used (that is, there is a logical OR between the security requirements). This definition overrides any declared top-level [`security`](#oasSecurity). To remove a top-level security declaration, an empty array can be used. | ||
|
@@ -1050,6 +1051,36 @@ Response with no return value: | |
description: object created | ||
``` | ||
|
||
#### <a name="callbackObject"></a>Callback Object | ||
|
||
A container for possible out-of band callbacks from an operation. A callback may be returned from an operation, calling back to the path specified in the operation object. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. »A callback may be returned from an operation« sounds wrong. Maybe better »A callback may be caused/triggered by an operation«? |
||
|
||
##### Patterned Fields | ||
Field Pattern | Type | Description | ||
---|:---:|--- | ||
<a name="responseName"></a>Callback name | [Callback Operation Object](#operationObject) <span>|</span> [Operation Object](#operationObject) | An operation object used to define a callback payload structure | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Both links here go to the same target (the operation object), which doesn't match the example. The example from the PR comment instead has a Reference object, with the reference referring to something which looks more like a clone of the top level Paths object, with some variable substitution mixed in in the path. The example here has the Paths object clone directly. Also, why do we need the callback name here? We could simply have a list of callback operations? |
||
<a name="responsesExtensions"></a>^x- | Any | Allows extensions to the OpenAPI Schema. The field name MUST begin with `x-`, for example, `x-internal-id`. The value can be `null`, a primitive, an array or an object. See [Specification Extensions](#specificationExtensions) for further details. | ||
|
||
|
||
##### Callback Object Example | ||
|
||
A callback to the URL specified by the `url` parameter in the request | ||
|
||
|
||
```yaml | ||
myWebhook: | ||
'$request.url': | ||
post: | ||
body: | ||
name: postResponse | ||
schema: | ||
$ref: '#/definitions/SomePayload' | ||
responses: | ||
200: | ||
description: webhook successfully processed an no retries will be performed | ||
``` | ||
|
||
|
||
#### <a name="headersObject"></a>Headers Object | ||
Lists the headers that can be sent as part of a response. | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is called here »Callback Object«, but »Callback Responses Object« in the Operation object.