6 releases
0.2.312 | Aug 14, 2023 |
---|---|
0.2.311 | Apr 11, 2023 |
0.1.0 | Mar 28, 2023 |
#108 in #openapi
Used in forem_openapi_client
65KB
1.5K
SLoC
openapi-lib-generator
A tool to generate Rust libraries from OpenAPI specifications using the OpenAPI Generator Rust code generator.
About
It is available as a binary or library.
Is this tool worth it?
There are other tools like this:
This differs from those by trying to generate self-updatable crates that include cargo-make makefiles so as not to have to keep using this generator.
Goal
Any crate generated by this generator should be mostly self-maintainable, including in its makefile all of the commands necessary to self-update to new versions as needed.
Progress
This tool can indeed generate code. There are, however, problems with the OpenAPI Generator's Rust generator.
Correctness
As of now, there may be syntactical errors in the generated code. (Notably, rustc error code e0412 (A used type name is not in scope)) There are PR requests pending on that repo to fix these problems, but the maintainers seem really busy.
FWIW, these errors may only happen if your OpenAPI specification is malformed, in which case, you're best off correcting the specification.
Edition
As of now, the generated code will be Rust 2018 edition. If the autogeneration
CLI option is true
(default), the CLI will try to update the edition automatically.
See the generated makefile for a task that also tries this. If using that option, the generated Cargo toml will require a manual update of the package.edition
field.
Contributing
After making changes in the generator crate, run cargo make test-generate-with-local-path
. This will try generating a crate with the OpenAPI Generator "Petstore" YAML spec.
Dependencies
~37–52MB
~769K SLoC