-
Notifications
You must be signed in to change notification settings - Fork 25
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
Openapi yaml #41
Openapi yaml #41
Conversation
…tity provider application config subclasses.
security identity providers (diff return types) lambda configuration (different types, same name)
also changes how we call publish.
It's a lot of code to digest, but the first thing that jumped out was that the instants don't look to be correctly handled. We use integers for all instants (ZonedDateTime) and they represent the number of milliseconds since Epoch. |
Okay, let me take another pass and re-request code review. |
This makes it easier to understand.
This was a bit weird because the definition in the json file is java.time.zoneddatetime. This is pretty clearly an object:https://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html But in all the json we get back the value of these fields are longs. So I just defined it as a long.
As documented here, there are workarounds for the compile errors I was getting: OpenAPITools/openapi-generator#10880 (comment)
Now we postprocess operations at the same uri + method but with different params.
when the api path is complex enough, we get colliding ids.
if new has it, we're good. if both don't have it, we're good.
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.
Let's do this!
This is a first pass at generating an openAPI yaml file from the API and domain JSON files.
This deploys files to the https://github.com/FusionAuth/fusionauth-openapi repository, where it can be versioned and released like any other client library package (not quite sure how the release plugin works, so I just copy pastaed it).
There are some flaws in the implementation. While the specification is valid, the generated client libraries haven't been fully exercised.
In particular:
Rollout plan: