AsyncAPI support

AsyncAPI support is currently in beta test. We are only supporting AsyncAPI 2.0, for JSON event driven APIs.

Adding topics to your documentation

Creating a good API documentation requires to give users context and guides. As AsyncAPI doesn't permit to add generic content, we have created a custom property. Setting the x-topics property at the root of your documentation specification will let you add some content sections at the beginning of your documentation.

Each topic can have the following properties:

Property

Description

title

Topic title as it will appear in the navigation bar and in the content section.

content

The topic content. Markdown is fully supported here.

example

Will appear in the examples section, if activated. Markdown is fully supported here.

Example:

x-topics:
- title: Getting started
content: Before using the API you need to get an API key by sending us an email.
- title: Authentication
content: Send the `X-API-KEY` header with all your requests.
example:
```
$ curl \
-X POST https://api.example.com/endpoint/ \
-H "X-API-KEY: XXXXXX" \
```

Current support state

Event driven APIs world is more complex thant REST APIs one: there are more protocols, more tools, more different architectures. As a consequence, AsyncAPI is more complex that OpenAPI to support. We wanted to open our beta fast, so we have chosen to release it with minimal features.

Currently supported

Bump is able to extract:

  • root properties (AsyncAPI Object)

  • channels (with automatic grouping according to channel name or tag grouping)

  • operations (subscribe and publish)

  • messages (payload and headers)

Partially supported: message object payload

Message#payload could be of any type according to the specification, but we only support SchemaObject type.

Unsupported: server security and securitySchemes

AsyncAPI securitySchemes component is not supported yet. At the moment, if you want to describe your security layer, you can use our custom x-topics property.

Unsupported: bindings

Bindings represent protocol-specific parameters. They are external to the main specification, and are not in a stable state at the moment. We do not support bindings.

Unsupported: allOf

We do not support allOf statement at the moment, but we will. allOf attributes are fully ignored, and should be replaced by the merged properties.

Unsupported: anyOf

We do not support anyOf statement, and won't in a near future. Introducing anyOf would imply to support kind of a "or" statement, which is particularly complex to handle and restitute from an UI point of view.