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]: cover AsyncAPI document sections in detail #1507

Closed
1 of 18 tasks
quetzalliwrites opened this issue Apr 6, 2023 · 5 comments
Closed
1 of 18 tasks

[📑 Docs]: cover AsyncAPI document sections in detail #1507

quetzalliwrites opened this issue Apr 6, 2023 · 5 comments
Assignees
Labels
area/docs Specify what technical area given issue relates to. Its goal is to ease filtering good first issues. 📑 docs gsod This label should be used for issues or discussions related to ideas for Google Season of Docs

Comments

@quetzalliwrites
Copy link
Member

quetzalliwrites commented Apr 6, 2023

What Dev Docs changes are you proposing?

As part of Google Season of Docs 2023 at AsyncAPI, we're going to write in-depth explanations of the different sections of an AsyncAPI document to avoid difficulties in implementing EDAs.

Here are the individual sections of an AsyncAPI document we need to cover:

  • AsyncAPI structure - Introduce all root elements, add short explanation of info, servers, channels, components, and their purpose.
  • Adding variables to URL - Explain how to add variables to the server URL when parts of the URL may be different per runtime. Explain how these can be reused between two servers via components.serverVariables.
  • Adding channel - Explain the purpose of channels, different names for it, and what users should put here. Add a simple channel there, and explain how it relates to the server. If you specify a channel and server, it is expected that a given channel is present on all servers. Explain that the channel can also specify that it is present only on server A or server B.
  • Specifying dynamic parts of channel name - Explain how to use and reuse parameters.
  • Adding operations - Introduce operations, how many there can be, what kind of, and their purpose, and explain pub/sub.
  • Securing operations - Explain that server security applies to all the operations in all channels. Still, if you have different security per operation, you can use the security prop at the operation level.
  • Adding messages - Add a simple message as in previous examples, explain the most important parts, and explain there can be one or multiple (oneOf) under operation. Talk about contentType and add a note about defaultSchema. Also, show how to reuse components.
  • Payload schema - More complex message example with payload added using JSON and Avro schemas, and explain how to specify them. Explain how to reuse schema from components.
  • AsyncAPI reusable parts - Explain the $ref concept, introduce and explain that $ref can point to the same document, other documents in a local system, and external URLs.
  • Reuse with traits - Explain how trait concepts work.
  • Organizing document with tags - Explain different tags info in different parts of AsyncAPI and their purpose.
  • Extending AsyncAPI specification - Explain what to do when the specification does not yet support something you need, some field is missing, and more.
  • Adding bindings - Add protocol-specific, additional info to AsyncAPI docs in different parts of the document, like server, channel, or message, to specify common things only for the given protocol.
  • Adding servers - Add information about where to connect and what server to interact with the app.
  • Adding servers' security - Add server security details.
  • Adding reply info - Add info about a reply to a message, explain when one is when the reply is known and hard coded in the spec, but can be dynamic.

asyncapi document sections

Tasks to complete in this epic

We'll break up the work into the following digestible pieces:

Code of Conduct

  • I agree to follow this project's Code of Conduct
@CatherineKiiru
Copy link

Hi @alequetzalli is this an active project? I'd like to work on it

Copy link
Member Author

@CatherineKiiru Nope, this is a GSoD project which means only our GSoD writers can work on this. You can work on regular docs issues tho :)

@derberg
Copy link
Member

derberg commented May 18, 2023

Some missing stuff:

  • Adding bindings - in asyncapi you can add a protocol-specific, additional info to AsyncAPI docs in different parts of the document, like server, or channel or message, to specify thing that are common only for given protocol.
  • Adding servers - adding information about where to connect, to what server to interact with the ap
  • Adding servers security - adding security details for a server
  • Adding reply info - adding info about reply to a message, explain 2 concepts that one is when reply is known and hardcoded in spec, but can be dynamic

@smoya
Copy link
Member

smoya commented Jul 20, 2023

I suggest we clarify in the description of this issue that those docs should be based on AsyncAPI Spec version 3.

@TRohit20
Copy link
Collaborator

TRohit20 commented Mar 5, 2024

@alequetzalli as all the tasks pertaining to the EPIC issue in context are resolved, I deem the issue is now completely resolved, hence, closing the EPIC issue.

@TRohit20 TRohit20 closed this as completed Mar 5, 2024
@quetzalliwrites quetzalliwrites unpinned this issue Mar 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/docs Specify what technical area given issue relates to. Its goal is to ease filtering good first issues. 📑 docs gsod This label should be used for issues or discussions related to ideas for Google Season of Docs
Projects
Status: Done 🚀
Development

No branches or pull requests

5 participants