openapi_lib_generator

Crates.ioopenapi_lib_generator
lib.rsopenapi_lib_generator
version0.2.312
sourcesrc
created_at2023-03-28 12:33:59.744092
updated_at2023-08-14 22:51:46.60148
descriptionRust openapi lib generator
homepage
repositoryhttps://github.com/plasticartsshow/openapi_lib_generator
max_upload_size
id822988
size122,137
Plastic Arts Show (plasticartsshow)

documentation

https://docs.rs/openapi_lib_generator

README

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.

Commit count: 28

cargo fmt