/openapi_elm_client

Generates Elm client code based on OpenAPI specs.

Primary LanguagePythonMIT LicenseMIT

openapi_elm_client

openapi-elm-client generates Elm client code from OpenAPI 2.0 specification.

Usage

Basic usage is like this:

openapi-elm-client my_spec.yaml Some.Module.Name

This will read the OpenAPI spec from my_spec.yaml and create an Elm module named Some.Module.Name. This writes the output to stdout, so a more typical invocation might be:

openapi-elm-client my_spec.yaml Some.Module.Name > src/Some/Module/Name.elm

Generated code

openapi-elm-client produces a named type alias for each definition in the input spec. It also produces a function for calling each endpoint defined in the spec, along with appropriate JSON encoders and decoders.

Tests

You can run the tests by first installing the test dependencies:

pip install ".[test]"

and then invoking pytest:

pytest tests

Approval tests

openapi-elm-client uses godkjenn for approval testing. We have collection of input specs along with "approved" versions of the code generated by openapi-elm-client; if the generated code ever changes, we have to see if it's still correct.