openapi3-code-generator: OpenAPI3 Haskell Client Code Generator

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Please see the README on GitHub at https://github.com/Haskell-OpenAPI-Code-Generator/Stripe-Haskell-Library#readme


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.6, 0.1.0.7
Change log ChangeLog.md
Dependencies aeson, base (>=4.7 && <5), bytestring, containers, directory, filepath, hashmap, http-client, http-conduit, http-types, mtl, openapi3-code-generator, options, scientific, split, template-haskell, text, time, transformers, unordered-containers, vector, yaml [details]
License MIT
Copyright 2020 Remo Dörig & Joel Fisch
Author Remo Dörig & Joel Fisch
Maintainer Joel Fisch <joel.fisch96@gmail.com> & Remo Dörig <remo.doerig@gmail.com>
Category Code-Generator
Home page https://github.com/Haskell-OpenAPI-Code-Generator/Stripe-Haskell-Library#readme
Bug tracker https://github.com/Haskell-OpenAPI-Code-Generator/Stripe-Haskell-Library/issues
Source repo head: git clone https://github.com/Haskell-OpenAPI-Code-Generator/Stripe-Haskell-Library
Uploaded by remo_doerig at 2020-05-27T06:07:45Z

Modules

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for openapi3-code-generator-0.1.0.0

[back to package description]

openapi3-code-generator

CircleCI

How to use?

  1. install stack
  2. stack install openapi3-code-generator
  3. openapi3-code-generator my_specification.yml

An 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.

Example package

In the folder example is a package that uses the generated code from specifications/petstore.yml. 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.

Documentation

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. This thesis can be found here TODO.

Large specifications

For large specifications some modules (CyclicTypes.hs for example) can get pretty big. It may be necessary to use --fast with 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 --module-name). To reduce compile time, the code is split up into multiple modules. Mainly for every operation and for every schema. Schemas with cyclic dependencies are are in the module OpenAPI.CyclicTypes.

Troubleshooting naming conflicts

Naming conflicts can happen, sometimes a little manual adjustment is needed. With the following options naming conflicts can be resolved.