openapi-typed: Types for OpenAPI

[ bsd3, library, openapi ] [ Propose Tags ]

Please see the README on GitHub at https://github.com/meeshkan/openapi-haskell#readme


[Skip to Readme]
Versions [faq] 0.0.0.0, 0.0.0.1
Change log ChangeLog.md
Dependencies aeson (>=1.4.7 && <1.5), base (>=4.7 && <5), text (>=1.2.4 && <1.3), unordered-containers (>=0.2.10 && <0.3), vector (>=0.12.1 && <0.13) [details]
License BSD-3-Clause
Copyright 2020 Meeshkan Oy
Author Mike Solomon
Maintainer mike@meeshkan.com
Category OpenAPI
Home page https://github.com/meeshkan/openapi-haskell#readme
Bug tracker https://github.com/meeshkan/openapi-haskell/issues
Source repo head: git clone https://github.com/meeshkan/openapi-haskell
Uploaded by mikesol at 2020-04-24T10:50:00Z
Distributions NixOS:0.0.0.1
Downloads 126 total (6 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2020-04-24 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for openapi-typed-0.0.0.1

[back to package description]

openapi-typed

Haskell types for OpenAPI 3.0.0. The types follow the following opinonated conventions and deviations from the standards:

  • For each OpenAPI object represented as data, provides the following:
    • a docstring showing how the constructor works
    • a constructor with fields named using the convention _<data>_field
    • a derivation of Eq for each data class
    • a derivation of Show for each data class
    • a derivation of ToJSON for each data class
    • a derivation of FromJSON for each data class
    • a getter for each field using the convention get<data><field>, where the field is capitalized, ie getPathItemSummary
    • a setter for each field using the convention set<data><field>, where the field is capitalized, ie setPathItemSummary
    • an either function for all datatypes with multiple construtors that take a single argument using the convention either<data><constructor>, ie eitherReferenceOrRef
  • Adds the possibility to use x- extensions on almost all objects, as this happens a lot in the wild.
  • Changes the items type in shema to accept a tuple in addition to a schema and a reference.

The Hackage package is in openapi-typed. The tests show how to use this library to parse the Slack and Stripe OpenAPI specs.