asyncapi / java-template

Java template for the AsyncAPI Generator
Apache License 2.0
11 stars 13 forks source link

[FEATURE] Spring Support #235

Open rj93 opened 11 hours ago

rj93 commented 11 hours ago

Why do we need this improvement?

Currently there are two seperate templates that include spring support:

However, neither of these support the AsyncAPI v3 schema.

How will this change help?

Having mutliple repositories that all need to be upgraded when newer schema versions are released clearly isn't working as there are many repositores that still don't support it 10 months after release.

Having a single java template that can be configured will help keep things up to date, as well as reduce the duplication as models etc remain should remain largley unchanged between different implementations.

Screenshots

No response

How could it be implemented/designed?

I propose that a new library parameter is added to this template, that can accept java (default, current implementation) and spring.

I would also suggest adding auther configuration options, such as artifactType: [app, library] to generate add the option to generate a library that could be imported like how OpenAPI does. Configuraiton options that are specific to each type of protocol/library to allow further customisation.

I have very breifly started to work on a fork that can be found here for Spring Kafka support, and I would just like to explore if this is something you would consider accepting to be merged into this project before I design in it a way that would be comptaible.

🚧 Breaking changes

No

👀 Have you checked for similar open issues?

🏢 Have you read the Contributing Guidelines?

Are you willing to work on this issue?

Yes I am willing to submit a PR!

github-actions[bot] commented 11 hours ago

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.