-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Added AsyncAPI v3 internal implementation #501
feat: Added AsyncAPI v3 internal implementation #501
Conversation
✅ Deploy Preview for springwolf-ui canceled.
|
19d9302
to
a33ecc3
Compare
e6e9368
to
3513e0e
Compare
507996d
to
071f59a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for this big contribution and effort to update Springwolf to AsyncApi 3.0!
I like all the classes as well as the test coverage.
Thanks for marking the skipped tests with a reason.
I cam across a couple questions. I do not have an answer on them, so I am interested in the discussion/reasoning:
- I notice a lot of classes, which I assume will not directly used by springwolf (i.e. security schema). What is the goal of the library? Support the Springwolf case (or be more generic to support serialization of asyncapi in general)? From our point of view, jAsyncApi wanted to much and therefore wasn't able to support our requirements (type safety, use of Objects, etc).
- Has the
core
in the packageio.github.stavshamir.springwolf.asyncapi.core.v3
a special meaning? - The test bindings are yaml, while the test models are json. Does the file format matter? -> I assume this reuses the asyncapi test data directly
What is the basis for the test models? Is the source of truth the spec repo on Github? Link?-> The bindings repo: i.e.: https://github.com/asyncapi/bindings/tree/master/amqpI wonder whether the bindings are also part of the model package?-> Nevermind, it has its own repo: https://github.com/asyncapi/bindings/tree/master- Regarding the jackson package, I have mixed feelings. However I understand the need of the
JsonSerialize
annotation on the models. Have you thought about the package nameserializer
? I can also imagine two interfaces (JsonSerialzer, YamlSerializers) as I like to rather expose those instead of theDefaultAsyncApiSerializer
Although these are a lot of questions, I am very happy with the PR! Hoping this helps improving Springwolf and I am looking forward to the next steps.
...java/io/github/stavshamir/springwolf/asyncapi/core/v3/jackson/DefaultAsyncApiSerializer.java
Show resolved
Hide resolved
071f59a
to
1361dce
Compare
@timonback Regarding your questions
|
feat: Added AsyncAPI internal implementation
This PR contains a first draft of a Springwolf internal AsyncAPI v3 implementation.
This new module is intended to create AsyncAPI Spec files from Java code, providing different convenient builders
Limitations: