openapi-typed: Types for OpenAPI

[ bsd3, library, openapi ] [ Propose Tags ]


[Index] [Quick Jump]


Maintainer's Corner

For package maintainers and hackage trustees


Versions [RSS],
Change log
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
Category OpenAPI
Home page
Bug tracker
Source repo head: git clone
Uploaded by mikesol at 2020-04-24T10:50:00Z
Distributions NixOS:
Downloads 337 total (9 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2020-04-24 [all 1 reports]

Readme for openapi-typed-

[back to package description]


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.