How to use?
- install cabal
cabal install openapi3-code-generator
out directory is created with the generated code. Hint you can use
--output-dir to specify another output directory.
You can use
openapi3-code-generator --help to list all CLI options.
openapi3-code-generator-exe is not found, you may not have added the cabal bin to your
How to run from source
- install stack
stack run -- --help
In the folder
example is a package that uses the generated code from
You can run
stack test inside the
example directory to run the code, it calls the server "https://petstore.swagger.io/v2" with some sample data.
https://github.com/Haskell-OpenAPI-Code-Generator/Stripe-Haskell-Library uses this code generator to generate a Stripe API client.
The documentation for the code can be found at https://hackage.haskell.org/package/openapi3-code-generator This package was created as part of a bachelor thesis. public thesis
For large specifications some modules (CyclicTypes.hs for example) can get pretty big. It may be necessary to use
stack build --fast to build the code.
Module structure of the generated code.
All symbols are globally unique and are reexported in the module
OpenAPI (Module name can be changed with
To reduce compile time, the code is split up into multiple modules.
Mainly for every operation and for every schema.
Troubleshooting naming conflicts
Naming conflicts can happen, sometimes a little manual adjustment is needed. With the following options naming conflicts can be resolved. It can happen, that the names get so long, that they are longer than the file system supports.
The following features are not supported
- Only references to
- Only JSON is supported for both sending and receiving data.
application/x-www-form-urlencodedcan only be used to send data.
- Some circular references in the schemas. For example if an
- Parameters not in