Skip to content
 
 

Latest commit

 

History

642 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo Springwolf Core

Automated documentation for AsyncAPIs built with Spring Boot

License springwolf-core springwolf-kafka springwolf-amqp springwolf-cloud-stream springwolf-common-model-converters

We are on discord for any question, discussion, request etc. Join us at https://discord.gg/HZYqd5RPTd

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.

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:

  1. Instantiating a payload object
  2. Serializing your payload object
  3. 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 Maven Central Sonatype Nexus (Snapshots)
AMQP AMQP Example Maven Central Sonatype Nexus (Snapshots)
Cloud Stream Cloud Stream Example Maven Central Sonatype Nexus (Snapshots)
Kafka Kafka Example Maven Central Sonatype Nexus (Snapshots)
Common Model Converter Maven Central Sonatype Nexus (Snapshots)

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):

Stav Shamir
Stav Shamir

💻
Timon Back
Timon Back

💻
sam0r040
sam0r040

💻
Carlos Tasada
Carlos Tasada

💻
jrlambs
jrlambs

💻
DmitriButorchin
DmitriButorchin

💻
Thomas Vahrst
Thomas Vahrst

💻
Yasen Pavlov
Yasen Pavlov

💻
Arthur Geweiler
Arthur Geweiler

💻
CS-BASF
CS-BASF

💻
Jeroen van Wilgenburg
Jeroen van Wilgenburg

💻
Michael Strelchenko
Michael Strelchenko

💻
Olivier Gaudefroy
Olivier Gaudefroy

💻
Omerbea
Omerbea

💻
Pavel Bodiachevskii
Pavel Bodiachevskii

💻
Sergio Roldán
Sergio Roldán

💻
Stmated
Stmated

💻
Themistoklis Pyrgiotis
Themistoklis Pyrgiotis

💻
Zach Hubbs
Zach Hubbs

💻
biergit
biergit

💻
kalarani
kalarani

💻

To add yourself as a contributor, install the all-contributors CLI and run:

  1. all-contributors check
  2. all-contributors add <username> code
  3. all-contributors generate

About

Automated documentation for async APIs built with Spring Boot

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages