Skip to main content

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.

springwolf publishing demo

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