MyNixOS website logo
Description

Types for OpenAPI.

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

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.

Metadata

Version

0.0.0.1

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows