I agree with you that some generators are less mature. For example, we just added a Crystal client generator several weeks ago and we only have tests for posting a JSON body and getting it back to verify the result. Features like oneOf, anyOf are not yet supported (of course we welcome contributions to improve the Crystal client generator).
You can use customized templates (e.g. via -t option in the CLI) to meet your unique requirements. Another tips is to use
code formatter such as https://prettier.io/, eslint etc to format the auto-generated code based on the style you want.
This is not to say it has more languages supported than Protobuf as I do not know exactly how many generators out there supporting Protobuf.
(OpenAPI Generator also comes with the generator/converter that converts OpenAPI spec documents into gRPC and protocol buffer schema files. Not sure if OpenAPI Generator is also counted as a generator for Protobuf)
> Does OpenAPI generate code for you? I have worked on projects that use it and didn't have any generated code, so I am assuming not...
Please give OpenAPI Generator [1] a try to generate clients, servers stubs, documentation, schemas (graphql, protobuf, etc) and more. It supports many programming languages and many companies are already using it [2]:
If you want to access RESTful APIs via OCaml, you may consider using OpenAPI Generator to generate the OCaml client automatically instead of manually creating one. Here are 3 simple steps to do so:
There were discussions on type hints but unfortunately no one has found the time to make the contribution yet.
We also have a new `python-experimental` client generator that has better support for new features in OAS v3. Please check it out to see if it works better for you.
Thanks! I'll give the new generator a spin and see what it looks like.
IIRC the problems I faced were around things like bearer token auth with JWT being confusing to configure, the general structure of the client being unintuitive for me, and a general lack of examples on how the client was supposed to be used. No problems that I couldn't resolve each in an afternoon, but way harder to work with than a hand-rolled SDK (even considering complex and arguably a bit confusing ones like https://developer.paypal.com/docs/api/quickstart/).
Please give it a try to see if you like it.