Sakshi-75 / springwolf-core

Automated documentation for event-driven applications built with Spring Boot

Home Page:https://www.springwolf.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logo Springwolf

Automated documentation for event-driven applications built with Spring Boot

License springwolf-core springwolf-amqp springwolf-cloud-stream springwolf-kafka springwolf-sqs 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. It documents asynchronous APIs using the AsyncAPI specification.

springwolf-ui adds a web UI, much like that of Springfox, and allows easy publishing of auto-generated payload examples.

Demo & Documentation

Take a look at the Springwolf live demo.

The documentation and quickstart is available on springwolf.dev.

Why You Should Use It

Springwolf exploits the fact that you already fully described your consumer endpoint (with listener annotations, such as @KafkaListner, @RabbitListener, @SqsListener, etc.) and generates the documentation based on this information.

Share API Schema Definition

The AsyncAPI conform documentation can be integrated into API hubs (like backstage) or be shared as a json/yaml file with others.

UI Based API Testing

In projects using asynchronous APIs, you may often find yourself needing to manually send a message to some topic, whether you are manually testing a new feature, debugging or trying to understand some flow.

Using the automatically generated example payload object as a suggestion, you can publish it to the correct channel with a single click.

Usage & Example

Protocols not supported natively can still be documented using @AsyncListener and @AsyncPublisher annotation. More details in the documentation.

Code / Plugin / Addon Example project Current version SNAPSHOT version
Core Maven Central Sonatype Nexus (Snapshots)
AMQP AMQP Example Maven Central Sonatype Nexus (Snapshots)
AWS SQS AWS SQS 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 event-driven applications built with Spring Boot

https://www.springwolf.dev

License:Apache License 2.0


Languages

Language:Java 93.1%Language:TypeScript 5.0%Language:HTML 1.5%Language:CSS 0.4%