# oaskit v0.12.0 - Table of Contents OpenAPI 3.1 validation, generation and utilities for for Elixir/Phoenix. ## GUIDES - [Changelog](changelog.md) - [Oaskit](readme.md) - Setup - [Oaskit Quickstart Guide](quickstart.md) - [Using an External Specification](external-specs.md) - [Extensions](extensions.md) - [Limitations](limitations.md) - Security - [Authorizing Requests](security.md) - Dev Log - [Security changes in v0.10](001-security-changes-0-10.md) ## Modules - [Oaskit.TestWeb.OrvalController.UserBodySchema](Oaskit.TestWeb.OrvalController.UserBodySchema.md): Some body that needs to be respected by orval. Foo Bar Foo! - Main API - [Oaskit](Oaskit.md): The main API to work with OpenAPI specifications. - [Oaskit.Controller](Oaskit.Controller.md): Provides macros to define OpenAPI operations directly from controllers. - Plugs - [Oaskit.Plugs.SpecProvider](Oaskit.Plugs.SpecProvider.md): A plug to associate an OpenAPI specification with a group of routes in a router or a controller. - [Oaskit.Plugs.ValidateRequest](Oaskit.Plugs.ValidateRequest.md): This plug will match incoming requests to operations defined with the `Oaskit.Controller.operation/2` or `Oaskit.Controller.use_operation/2` macros and retrieved from a provided OpenAPI Specification module. - [Oaskit.SpecController](Oaskit.SpecController.md): Controller for serving OpenAPI specifications in JSON format or Redoc UI. - Error Handling - [Oaskit.ErrorHandler](Oaskit.ErrorHandler.md): A behaviour for validation errors handlers. - [Oaskit.ErrorHandler.Default](Oaskit.ErrorHandler.Default.md): The default error handler for validation errors. - Testing - [Oaskit.Test](Oaskit.Test.md): Provides the `valid_response/3` test helper to validate API responses in your ExUnit tests. - Utilities - [Oaskit.SpecDumper](Oaskit.SpecDumper.md): A helper to render an OpenAPI specification to JSON format. - [Oaskit.SpecValidator](Oaskit.SpecValidator.md): A helper module used to cast and validate OpenAPI specifications into structs. - OpenAPI Spec 3.1 - [Oaskit.Spec.Callback](Oaskit.Spec.Callback.md): Representation of the [ Callback Object](https://spec.openapis.org/oas/v3.1.1.html#callback-object) in OpenAPI Specification. - [Oaskit.Spec.Components](Oaskit.Spec.Components.md): Representation of the [ Components Object](https://spec.openapis.org/oas/v3.1.1.html#components-object) in OpenAPI Specification. - [Oaskit.Spec.Contact](Oaskit.Spec.Contact.md): Representation of the [ Contact Object](https://spec.openapis.org/oas/v3.1.1.html#contact-object) in OpenAPI Specification. - [Oaskit.Spec.Discriminator](Oaskit.Spec.Discriminator.md): Representation of the [ Discriminator Object](https://spec.openapis.org/oas/v3.1.1.html#discriminator-object) in OpenAPI Specification. - [Oaskit.Spec.Encoding](Oaskit.Spec.Encoding.md): Representation of the [ Encoding Object](https://spec.openapis.org/oas/v3.1.1.html#encoding-object) in OpenAPI Specification. - [Oaskit.Spec.Example](Oaskit.Spec.Example.md): Representation of the [ Example Object](https://spec.openapis.org/oas/v3.1.1.html#example-object) in OpenAPI Specification. - [Oaskit.Spec.ExternalDocumentation](Oaskit.Spec.ExternalDocumentation.md): Representation of the [ External Documentation Object](https://spec.openapis.org/oas/v3.1.1.html#external-documentation-object) in OpenAPI Specification. - [Oaskit.Spec.Header](Oaskit.Spec.Header.md): Representation of the [ Header Object](https://spec.openapis.org/oas/v3.1.1.html#header-object) in OpenAPI Specification. - [Oaskit.Spec.Info](Oaskit.Spec.Info.md): Representation of the [ Info Object](https://spec.openapis.org/oas/v3.1.1.html#info-object) in OpenAPI Specification. - [Oaskit.Spec.License](Oaskit.Spec.License.md): Representation of the [ License Object](https://spec.openapis.org/oas/v3.1.1.html#license-object) in OpenAPI Specification. - [Oaskit.Spec.Link](Oaskit.Spec.Link.md): Representation of the [ Link Object](https://spec.openapis.org/oas/v3.1.1.html#link-object) in OpenAPI Specification. - [Oaskit.Spec.MediaType](Oaskit.Spec.MediaType.md): Representation of the [ Media Type Object](https://spec.openapis.org/oas/v3.1.1.html#media-type-object) in OpenAPI Specification. - [Oaskit.Spec.OAuthFlow](Oaskit.Spec.OAuthFlow.md): Representation of the [ O Auth Flow Object](https://spec.openapis.org/oas/v3.1.1.html#o-auth-flow-object) in OpenAPI Specification. - [Oaskit.Spec.OAuthFlows](Oaskit.Spec.OAuthFlows.md): Representation of the [ O Auth Flows Object](https://spec.openapis.org/oas/v3.1.1.html#o-auth-flows-object) in OpenAPI Specification. - [Oaskit.Spec.OpenAPI](Oaskit.Spec.OpenAPI.md): Representation of the [ Open Api Object](https://spec.openapis.org/oas/v3.1.1.html#open-api-object) in OpenAPI Specification. - [Oaskit.Spec.Operation](Oaskit.Spec.Operation.md): Representation of the [ Operation Object](https://spec.openapis.org/oas/v3.1.1.html#operation-object) in OpenAPI Specification. - [Oaskit.Spec.Parameter](Oaskit.Spec.Parameter.md): Representation of the [ Parameter Object](https://spec.openapis.org/oas/v3.1.1.html#parameter-object) in OpenAPI Specification. - [Oaskit.Spec.PathItem](Oaskit.Spec.PathItem.md): Representation of the [ Path Item Object](https://spec.openapis.org/oas/v3.1.1.html#path-item-object) in OpenAPI Specification. - [Oaskit.Spec.Paths](Oaskit.Spec.Paths.md): Representation of the [ Paths Object](https://spec.openapis.org/oas/v3.1.1.html#paths-object) in OpenAPI Specification. - [Oaskit.Spec.Reference](Oaskit.Spec.Reference.md) - [Oaskit.Spec.RequestBody](Oaskit.Spec.RequestBody.md): Representation of the [ Request Body Object](https://spec.openapis.org/oas/v3.1.1.html#request-body-object) in OpenAPI Specification. - [Oaskit.Spec.Response](Oaskit.Spec.Response.md): Representation of the [ Response Object](https://spec.openapis.org/oas/v3.1.1.html#response-object) in OpenAPI Specification. - [Oaskit.Spec.Responses](Oaskit.Spec.Responses.md): Representation of the [ Responses Object](https://spec.openapis.org/oas/v3.1.1.html#responses-object) in OpenAPI Specification. - [Oaskit.Spec.SchemaWrapper](Oaskit.Spec.SchemaWrapper.md): A wrapper to embed JSON schemas of any supported type (modules, maps, booleans) in an OpenAPI specification. - [Oaskit.Spec.SecurityRequirement](Oaskit.Spec.SecurityRequirement.md): Representation of the [ Security Requirement Object](https://spec.openapis.org/oas/v3.1.1.html#security-requirement-object) in OpenAPI Specification. - [Oaskit.Spec.SecurityScheme](Oaskit.Spec.SecurityScheme.md): Representation of the [ Security Scheme Object](https://spec.openapis.org/oas/v3.1.1.html#security-scheme-object-0) in OpenAPI Specification. - [Oaskit.Spec.Server](Oaskit.Spec.Server.md): Representation of the [ Server Object](https://spec.openapis.org/oas/v3.1.1.html#server-object) in OpenAPI Specification. - [Oaskit.Spec.ServerVariable](Oaskit.Spec.ServerVariable.md): Representation of the [ Server Variable Object](https://spec.openapis.org/oas/v3.1.1.html#server-variable-object) in OpenAPI Specification. - [Oaskit.Spec.Tag](Oaskit.Spec.Tag.md): Representation of the [ Tag Object](https://spec.openapis.org/oas/v3.1.1.html#tag-object) in OpenAPI Specification. - [Oaskit.Spec.XML](Oaskit.Spec.XML.md): Representation of the [ Xml Object](https://spec.openapis.org/oas/v3.1.1.html#xml-object) in OpenAPI Specification. - Validation - [Oaskit.Validation.RequestData](Oaskit.Validation.RequestData.md): A subset of a parsed and fetched `Plug.Conn` struct representing an HTTP request, used by `Oaskit.Plugs.ValidateRequest` and `Oaskit.Validation.RequestValidator`. - [Oaskit.Validation.RequestValidator](Oaskit.Validation.RequestValidator.md): Base validation logic for requests, used by the `Oaskit.Plugs.ValidateRequest` Plug. - [Oaskit.Validation.ResponseData](Oaskit.Validation.ResponseData.md): A subset of a `Plug.Conn` struct representing an HTTP response, used by `Oaskit.Test` and `Oaskit.Validation.ResponseValidator`. - [Oaskit.Validation.ResponseValidator](Oaskit.Validation.ResponseValidator.md): Base validation logic for responses, used by the `Oaskit.Test` helper. - JSON Schema Extensions - [Oaskit.JsonSchema.Formats](Oaskit.JsonSchema.Formats.md): Implements formats described in https://spec.openapis.org/api/format.json for `JSV`'s format validation. Some of the described formats are already implemented in JSV directly. - Exceptions - [Oaskit.Errors.InvalidBodyError](Oaskit.Errors.InvalidBodyError.md) - [Oaskit.Errors.InvalidParameterError](Oaskit.Errors.InvalidParameterError.md) - [Oaskit.Errors.MissingParameterError](Oaskit.Errors.MissingParameterError.md) - [Oaskit.Errors.NormalizeError](Oaskit.Errors.NormalizeError.md) - [Oaskit.Errors.UnsupportedMediaTypeError](Oaskit.Errors.UnsupportedMediaTypeError.md) - [Oaskit.SpecValidator.Error](Oaskit.SpecValidator.Error.md) ## Mix Tasks - [mix openapi.dump](Mix.Tasks.Openapi.Dump.md): Writes an OpenAPI specification in a JSON file.