Springwolf Core
Automated documentation for async APIs built with Spring Boot
Table Of Contents
About
This project is inspired by Springfox, but instead of documenting REST APIs, it documents async APIs.
The resulting document is compliant with the asyncapi specification and is provided as a web UI, much like that of Springfox, and allows easy publishing of autogenerated payload examples.
Demo
You can take a look at a live demo of springwolf.
Supported protocols
- Kafka
- SQS (coming soon!)
Why you should use it
In projects using async APIs, you may often find yourself needing to manually send a message to some topic, whether if you are manually testing a new feature, debugging or trying to understand some flow. This requires:
- Instantiating a payload object
- Serializing your payload object
- Publishing it by the CLI or some other interface.
Springwolf exploits the fact you already fully described your consumer endpoint (with listener annotations, such as @KafkaListner
) and automatically generates an example payload object for the appropriate payload and allows you to publish it to the correct channel with a single click.
Usage
You should not be using this dependency in your application. Instead, use one of the supported protocols plugins:
Example Project
You can run the provided docker-compose file and check localhost:8080/asyncapi-ui.html
. The source can be found here.
Development
Local Snapshots
To work with local snapshots, run the publishToMavenLocal
task with -Dsnapshot=true
.