Introduction
What is springwolf
API Documentation is an important part of every project and product, but can be painful to maintain manually. Spring Boot projects have great solutions for auto-generated documentation for REST APIs to overcome this pain (such as springfox, or springdoc-openapi).
However, until now there were no solutions for async APIs (such as kafka, amqp etc.). Springwolf aims to solve this and provides auto-generated documentation for async APIs built in Spring Boot.
Springwolf is compliant to AsyncAPI, which brings the swagger/OpenAPI specification you know already from REST APIs into the world of event-driven architectures.
Demo
View the live demo of springwolf in action.
Also, the demos of the amqp, cloud-stream, kafka example projects are available.

What does it do
If you are using Spring Boot annotation based listeners (such as @KafkaListener, @RabbitListener etc.), you probably have something like this in your codebase:
@Service
public class ExampleConsumer {
@KafkaListener(topics = "example-topic")
public void receiveExamplePayload(ExamplePayloadDto payload) {
// Do something with payload
}
}
By simply adding Springwolf dependency to your project you will automatically get:
- An endpoint returning an asyncapi document describing your async API.
- A web UI for convenient use by your developers, QA or clients of your async API.
- An easy way to publish messages to your async API with a click of a button