Skip to content

wolfadex/elm-open-api

Repository files navigation

elm-open-api Build Status

For decoding and querying an OpenAPI Document which conforms to the OpenAPI Specification (OAS). OAS can be generated from backend REST APIs and are used to define the expected behavior of a RESTful API.

OAS can be written in JSON or YAML; currently this pacakge supports parsing the JSON format only.

There are primarily 2 versions of OAS the current 3.X versions, which this package supports, and the legacy 2.X versions, also known as Swagger or Swagger docs. I hope to support the 2.X, Swagger, spec in a future release as there are still numerous APIs that only support 2.X.

For supported versions I attempt to provide a minimal level of validation of the OAS and parsing may fail if it doesn't meet the minimum requirements. Howver you should not expect that a successfully parsed OAS is 100% compliant. E.g. some fields are required if and only if another specific field is present and has a specific value. These are not always validated to be present in those cases but a best attempt is made.

For documentation on what specific values mean in the context of an OAS, please refer to the official OAS docs.

Currently Supported & In-Progress Features

🚧 - Under construction

🧪 - Tested

  • Versions
    • 2.x.y
    • 3.0.y
    • 🚧 3.1.0
      • 🧪 OpenAPI Object
      • 🧪 Info Object
      • 🧪 Contact Object
      • 🧪 License Object
      • 🧪 Server Object
      • 🧪 Server Variable Object
      • 🧪 Components Object
      • 🧪 Paths Object
      • 🧪 Path Item Object
      • 🧪 Operation Object
      • 🧪 External Documentation Object
      • 🧪 Parameter Object
      • 🧪 Request Body Object
      • 🧪 Media Type Object
      • 🧪 Encoding Object
      • 🧪 Responses Object
      • 🧪 Response Object
      • 🧪 Callback Object
      • 🧪 Example Object
      • 🧪 Link Object
      • 🧪 Header Object
      • 🧪 Tag Object
      • 🧪 Reference Object
      • Schema Object
      • Discriminator Object
      • XML Object
      • 🧪 Security Scheme Object
      • 🧪 OAuth Flows Object
      • 🧪 OAuth Flow Object
      • 🧪 Security Requirement Object
      • 🚧 Specification Extensions
      • 🚧 Security Filtering