Springwolf Core
Automated documentation for AsyncAPIs built with Spring Boot
We are on discord for any question, discussion, request etc. Join us at https://discord.gg/HZYqd5RPTd
Table Of Contents
- About
- Demo
- Documentation
- Supported protocols
- Why you should use it
- Usage & Example
- Development
- Contributors
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.
Documentation
Springwolf documentation is available at here.
Supported protocols
- Kafka
- AMQP (RabbitMQ)
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
, @RabbitListener
etc.) 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 & Example
Code / Plugin / Addon | Example project | Current version | SNAPSHOT version |
---|---|---|---|
Core | |||
AMQP | AMQP Example | ||
Cloud Stream | Cloud Stream Example | ||
Kafka | Kafka Example | ||
Common Model Converter |
Development
Sonatype snapshots
Add the following to the repositories
closure in build.gradle
:
repositories {
// ...
maven {
url "https://s01.oss.sonatype.org/content/repositories/snapshots"
}
}
Or add the repository
to your pom.xml
if you are using maven:
<repositories>
<repository>
<id>oss-sonatype</id>
<name>oss-sonatype</name>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
Local Snapshot Build
To work with local builds, run the publishToMavenLocal
task. The current version number is set in .env
file.
Contributors
Thanks goes to these wonderful people (emoji key):
To add yourself as a contributor, install the all-contributors CLI and run:
all-contributors check
all-contributors add <username> code
all-contributors generate