Quarkus Asyncapi Scanner

This extension creates an AsyncApi-document, describing data your server publishes/subscribes to/from Kafka-topics.

It does this by

  • scanning for annotations @Channel, @Outgoing and @Incoming in your project,

  • reading topics and descriptions from microprofile-configuration and

  • reading data from running kafka

The result can be viewed as html or svg or downloaded as yaml, json or plant-uml (localhost://[quarkus.http.root-path]/asyncapi.[html|svg|yaml|json|puml]).

Installation

If you want to use this extension, you need to add the io.quarkiverse.asyncapi:quarkus-asyncapi extension first to your build file.

For instance, with Maven, add the following dependency to your POM file:

<dependency>
    <groupId>io.quarkiverse.asyncapi</groupId>
    <artifactId>quarkus-asyncapi-scanner</artifactId>
    <version>1.0.2</version>
</dependency>

Extension Configuration Reference

For more information about the extension configuration please refer to the Configuration Reference.

Configuration property fixed at build time - All other configuration properties are overridable at runtime

Configuration property

Type

Default

Enable AysncApi-Scanning

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_ENABLED

boolean

true

Version of the WebComponent to be used in html-view to be found at [HOST]/asyncapi.html

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_WEBCOMPONENTVERSION

string

1.0.0-next.47

Full qualified name of the implementing AsyncApiFilter

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_FILTER

string

AsyncApi specification version

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_VERSION

string

2.6.0

Default ContentType

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_DEFAULT_CONTENT_TYPE

string

application/json

Title

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_INFO_TITLE

string

AsyncApi

Project-version

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_INFO_VERSION

string

1.0.0

Project-description

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_INFO_DESCRIPTION

string

Contact-Name

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_INFO_CONTACT_NAME

string

Contact-Email

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_INFO_CONTACT_EMAIL

string

you@mail.org

Contact-URL

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_INFO_CONTACT_URL

string

License-Name

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_INFO_LICENSE_NAME

string

Commercial

License-URL

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_INFO_LICENSE_URL

string

Url

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_SERVER__SERVER__URL

string

required

Protocol

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_SERVER__SERVER__PROTOCOL

string

kafka

Description

Environment variable: QUARKUS_ASYNCAPI_ANNOTATION_SCANNER_CHANNEL__CHANNEL__DESCRIPTION

string

Migration to V1 (switch from AsyncApi v2.6.0 to v3.0.0)

The structure of asyncApi has multiple breaking changes. See migration to V3 for details. To apply to these changes following changed in the extension-configuration: