Skip to content
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

docs: provide reply definition #992

Closed
wants to merge 55 commits into from
Closed
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
78e210a
feat: strip custom referencing mechanism from Channel Item (#777)
char0n Jul 5, 2022
3c59fa6
docs: clarify the meaning of components (#803)
fmvilas Jul 25, 2022
624ad52
feat: add new channels object (#827)
fmvilas Sep 21, 2022
eef1d04
Merge branch 'master' into next-major-spec
derberg Sep 26, 2022
1d50ccb
feat!: move operations to its own root object (#806)
fmvilas Sep 26, 2022
05d5d7a
Merge master into next-major-spec
asyncapi-bot-eve Sep 28, 2022
c830851
Merge master into next-major-spec
asyncapi-bot-eve Sep 29, 2022
6e72900
Merge master into next-major-spec
asyncapi-bot-eve Oct 10, 2022
a1783a2
feat: add more reusable objects to the components object (#792)
magicmatatjahu Oct 11, 2022
a828246
Merge master into next-major-spec
asyncapi-bot-eve Oct 25, 2022
f48d383
Merge master into next-major-spec
asyncapi-bot-eve Oct 25, 2022
0cd222a
Merge master into next-major-spec
asyncapi-bot-eve Oct 25, 2022
f3a8468
feat: move root tags and externalDocs to the info object (#794)
magicmatatjahu Oct 26, 2022
8d66f08
Merge master into next-major-spec
asyncapi-bot-eve Oct 27, 2022
0e77319
Merge master into next-major-spec
asyncapi-bot-eve Oct 27, 2022
f3773c5
chore: fix inconsistent title level (#865)
jonaslagoni Oct 31, 2022
623fbc8
fix: remove action and channel fields from Operation Trait Object (#860)
magicmatatjahu Nov 9, 2022
33a9971
chore: update AsyncAPI version to 3.0.0 (#864)
jonaslagoni Nov 21, 2022
c46448f
feat: add missed "metadata" fields in the Server/Channel/Operation Ob…
magicmatatjahu Dec 19, 2022
36061cd
feat: unify all referencing mechanisms (#852)
fmvilas Jan 17, 2023
df2bab7
chore: clarify introduction (#875)
fmvilas Jan 22, 2023
190aced
fix: use union for operation action (#905)
magicmatatjahu Feb 7, 2023
a2fdc03
feat: replace server url with server host and pathname (#888)
fmvilas Feb 13, 2023
d367c23
feat: request/response support (#847)
GreenRover Mar 10, 2023
385d651
docs: fixes Operation Object link pointing to Channel Object doc (#929)
nickshoe Apr 26, 2023
242c0f6
docs: remove info about compatibility with openapi (#933)
derberg May 23, 2023
1987e69
feat: simplify parameter object (#935)
fmvilas May 29, 2023
3c61f49
feat: allow defining schema format other than default (#910)
GreenRover May 30, 2023
83035ab
chore: fix multiformat schema object table (#943)
jonaslagoni Jun 13, 2023
d89a1a6
docs: align text about send receive and publisher and subscriber (#934)
derberg Jun 29, 2023
e26b9a5
feat: new traits merge mechanism (#907)
magicmatatjahu Jul 13, 2023
f812cd7
docs: add info that runtime expression is used by reply obj (#955)
derberg Jul 20, 2023
6ce7d35
ci: update release workflow on release branch (#956)
kaushik-rishi Jul 26, 2023
e2a3fa4
fix: clarify expected type for Message headers (#952)
smoya Jul 28, 2023
c37d745
chore: update examples to v3 (#947)
jonaslagoni Aug 2, 2023
05e7b71
fix: trigger release with fixed release workflow (#968)
derberg Sep 12, 2023
abfae49
fix: update some examples according to v3 (#971)
smoya Sep 17, 2023
cc109fe
docs: update examples to be written by human not converter (#977)
derberg Oct 30, 2023
768ac3f
feat!: remove messageId from Message and MessageTraits objects (#984)
fmvilas Nov 6, 2023
e7e66db
fix: remove mentions of Operation Item Object (#988)
char0n Nov 13, 2023
e76206a
docs: add constraint about channel address to not use query params an…
derberg Nov 13, 2023
5e3044a
docs provide definition for the reply
Tenischev Nov 16, 2023
f8a6bb0
chore: fix gitter binding example (#995)
Amzani Nov 28, 2023
5fb88a0
fix: clarify pointers for channel.servers and operation.channel field…
smoya Nov 29, 2023
1a8c669
chore: update examples so messages reference channel messages (#997)
derberg Nov 29, 2023
2e45aad
chore: merge upstream 'master' into 'next-major-spec'
jonaslagoni Dec 4, 2023
ba8ea9d
chore: apply #853
jonaslagoni Dec 4, 2023
297b336
chore: apply #884
jonaslagoni Dec 4, 2023
3cb5550
chore: apply #902
jonaslagoni Dec 4, 2023
736b5e1
chore: apply #909
jonaslagoni Dec 4, 2023
41686ae
chore: apply #983
jonaslagoni Dec 4, 2023
1a6958b
Merge pull request #999 from jonaslagoni/update_with_master_3
derberg Dec 4, 2023
4c52386
Merge remote-tracking branch 'origin/next-major-spec' into provide_re…
Tenischev Dec 13, 2023
4730960
Merge remote-tracking branch 'origin/master' into provide_reply_defin…
Tenischev Jan 10, 2024
2c72596
Merge remote-tracking branch 'remote/master' into provide_reply_defin…
Tenischev Jan 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions spec/asyncapi.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,10 @@ A sender is a type of application, that is sending [messages](#definitionsMessag
A receiver is a type of application that is receiving [messages](#definitionsMessage) from [channels](#definitionsChannel). A receiver MAY receive from multiple channels depending on the [server](#definitionsServer), protocol, and the use-case pattern. A receiver MAY forward a received message further without changing it. A receiver MAY act as a consumer and react to the message. A receiver MAY act as a processor that, for example, aggregates multiple messages in one and forwards them.

### <a name="definitionsMessage"></a>Message
A message is the mechanism by which information is exchanged via a channel between [servers](#definitionsServer) and applications. A message MAY contain a payload and MAY also contain headers. The headers MAY be subdivided into [protocol](#definitionsProtocol)-defined headers and header properties defined by the application which can act as supporting metadata. The payload contains the data, defined by the application, which MUST be serialized into a format (JSON, XML, Avro, binary, etc.). Since a message is a generic mechanism, it can support multiple interaction patterns such as event, command, request, or response.
A message is the mechanism by which information is exchanged via a channel between [servers](#definitionsServer) and applications. A message MAY contain a payload and MAY also contain headers. The headers MAY be subdivided into [protocol](#definitionsProtocol)-defined headers and header properties defined by the application which can act as supporting metadata. The payload contains the data, defined by the application, which MUST be serialized into a format (JSON, XML, Avro, binary, etc.). Since a message is a generic mechanism, it can support multiple interaction patterns such as event, command, request, or reply.

#### <a name="definitionsReplyMessage"></a>Reply message
A reply is a special type of message used in the request-reply interaction pattern and can only be used in combination with a request message. In the request-reply interaction pattern, messages are defined as follows: [Sender](#definitionsSender) sends a request message and waits for a reply message, while [Receiver](#definitionsReceiver) receives the request message and responds with a reply message.

### <a name="definitionsChannel"></a>Channel
A channel is an addressable component, made available by the [server](#definitionsServer), for the organization of [messages](#definitionsMessage). [Sender](#definitionsSender) applications send messages to channels and [receiver](#definitionsReceiver) applications receive messages from channels. [Servers](#definitionsServer) MAY support many channel instances, allowing messages with different content to be addressed to different channels. Depending on the [server](#definitionsServer) implementation, the channel MAY be included in the message via protocol-defined headers.
Expand Down Expand Up @@ -835,7 +838,7 @@ Field Name | Type | Description
<a name="operationObjectBindings"></a>bindings | [Operation Bindings Object](#operationBindingsObject) \| [Reference Object](#referenceObject) | A map where the keys describe the name of the protocol and the values describe protocol-specific definitions for the operation.
<a name="operationObjectTraits"></a>traits | [[Operation Trait Object](#operationTraitObject) &#124; [Reference Object](#referenceObject) ] | A list of traits to apply to the operation object. Traits MUST be merged using [traits merge mechanism](#traits-merge-mechanism). The resulting object MUST be a valid [Operation Object](#operationObject).
<a name="operationObjectMessages"></a>messages | [[Reference Object](#referenceObject)] | A list of `$ref` pointers pointing to the supported [Message Objects](#messageObject) that can be processed by this operation. It MUST contain a subset of the messages defined in the [channel referenced in this operation](#operationObjectChannel), and MUST NOT point to a subset of message definitions located in the [Messages Object](#componentsMessages) in the [Components Object](#componentsObject) or anywhere else. **Every message processed by this operation MUST be valid against one, and only one, of the [message objects](#messageObject) referenced in this list.** Please note the `messages` property value MUST be a list of [Reference Objects](#referenceObject) and, therefore, MUST NOT contain [Message Objects](#messageObject). However, it is RECOMMENDED that parsers (or other software) dereference this property for a better development experience.
<a name="operationObjectReply"></a>reply | [Operation Reply Object](#operationReplyObject) &#124; [Reference Object](#referenceObject) | The definition of the reply in a request-reply operation.
<a name="operationObjectReply"></a>reply | [Operation Reply Object](#operationReplyObject) &#124; [Reference Object](#referenceObject) | The definition of the reply part in a request-reply interaction. When this property is defined, the [messages](#operationObjectMessages) represent request messages in a request-reply interaction.

This object MAY be extended with [Specification Extensions](#specificationExtensions).

Expand Down Expand Up @@ -965,7 +968,7 @@ bindings:

#### <a name="operationReplyObject"></a>Operation Reply Object

Describes the reply part that MAY be applied to an Operation Object. If an operation implements the request/reply pattern, the reply object represents the response message.
Describes the reply part that MAY be applied to an Operation Object. If an operation implements the request-reply interaction pattern, this object represents the reply address/channel and the reply message.

##### Fixed Fields

Expand Down Expand Up @@ -1190,7 +1193,7 @@ Map describing protocol-specific definitions for a message.

Field Name | Type | Description
---|:---:|---
<a name="messageBindingsObjectHTTP"></a>`http` | [HTTP Message Binding](https://github.com/asyncapi/bindings/blob/master/http/README.md#message) | Protocol-specific information for an HTTP message, i.e., a request or a response.
<a name="messageBindingsObjectHTTP"></a>`http` | [HTTP Message Binding](https://github.com/asyncapi/bindings/blob/master/http/README.md#message) | Protocol-specific information for an HTTP message, i.e., a request or a reply.
<a name="messageBindingsObjectWebSockets"></a>`ws` | [WebSockets Message Binding](https://github.com/asyncapi/bindings/blob/master/websockets/README.md#message) | Protocol-specific information for a WebSockets message.
<a name="messageBindingsObjectKafka"></a>`kafka` | [Kafka Message Binding](https://github.com/asyncapi/bindings/blob/master/kafka/README.md#message) | Protocol-specific information for a Kafka message.
<a name="messageBindingsObjectAnypointMQ"></a>`anypointmq` | [Anypoint MQ Message Binding](https://github.com/asyncapi/bindings/blob/master/anypointmq/README.md#message) | Protocol-specific information for an Anypoint MQ message.
Expand Down
Loading