Skip to content
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

Investigate OpenAPI for documentation and client library generation #614

Open
mooreds opened this issue May 8, 2020 · 11 comments
Open

Investigate OpenAPI for documentation and client library generation #614

mooreds opened this issue May 8, 2020 · 11 comments

Comments

@mooreds
Copy link
Collaborator

mooreds commented May 8, 2020

Investigate OpenAPI for documentation and client library generation

Right now FusionAuth uses https://github.com/FusionAuth/fusionauth-client-builder for building the clients and docs. This works and we have numerous client libraries.

However, there's a specification out there that may be worth evaluating -- OpenAPI (formerly swagger):

It might allow FusionAuth to accelerate the rate of new languages with client libraries by switching to OpenAPI. It might also promote more community involvement in our client libraries.

Things to consider as part of this evaluation:

  • Does OpenAPI introduces a lot of unnecessary dependencies to client libraries (for example, does the Java client library that OpenAPI generates use Apache Commons or Spring)?
  • Is OpenAPI capable of producing Java code that seamlessly integrates with the core codebase since we use our own Java Client for everything?

Requested Client Libraries

We may easily be able to deliver these additional libraries with OpenAPI.

How to vote

If you have comments regarding OpenAPI and FusionAuth or would like to get this on our roadmap to consider, please comment and upvote the feature request.

@mooreds mooreds added the feature label May 8, 2020
@voidmain voidmain changed the title Use OpenAPI for documentation and client library generation Investigate OpenAPI for documentation and client library generation May 10, 2020
@mooreds
Copy link
Collaborator Author

mooreds commented Jun 19, 2020

This has been mentioned before: #50

@voidmain
Copy link
Member

Just so we don't forget: we'll need to evaluate how to parse the Java domain objects and spit out OpenAPI domain definitions.

@robotdan
Copy link
Member

We can likely tweak our Java-2-JSON library to build the DSL expected by OpenAPI.
Perhaps we should open source it. https://github.com/inversoft/java2json

@robotdan
Copy link
Member

@mooreds
Copy link
Collaborator Author

mooreds commented Sep 14, 2020

Also worth looking at if/when this is implemented: https://github.com/Endava/cats

@mooreds
Copy link
Collaborator Author

mooreds commented Mar 25, 2021

Interesting links/discussion here: https://news.ycombinator.com/item?id=26575455

@koshkarov
Copy link

We'd love to have OpenAPI spec, as it will allow us to easily test, generate client, etc. Please consider using it, that'd be super helpful.

@mooreds
Copy link
Collaborator Author

mooreds commented Nov 9, 2021

@koshkarov thanks for your feedback; please upvote the issue as that is how we measure community feedback when planning.

@pendenga
Copy link

I upvoted this, but also like to mention my use case. I've been doing a lot of debugging and support directly in the API using Postman. Postman can build the collection automatically given an OpenAPI spec, so that's my interest. I have my own collection I've been putting together as I go along, but it'd be nice to have one built from a definitive spec.

@mooreds
Copy link
Collaborator Author

mooreds commented Jan 21, 2022

Hi folks, we have experimental openapi support that I just released.

Here's the github repo: https://github.com/fusionauth/fusionauth-openapi with the spec and a readme with known issues.

It's also available via the https://fusionauth.io/docs/v1/tech/client-libraries/openapi/

Please pull down the openapi doc (only for 1.32.1 right now) and give it a whirl. Would welcome feedback about:

  • how it works for you
  • suggestions to make it better
  • any bugs/issues you encounter

I'm going to leave this issue open for a while for comments. Would love to hear from @koshkarov @pendenga and anyone else who voted.

@mooreds
Copy link
Collaborator Author

mooreds commented Oct 17, 2022

More on openapi/link fest:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants