# jsonapi v1.13.1 - API Reference

## Modules

- [JSONAPI](JSONAPI.md): A module for working with the JSON API specification in Elixir

- [JSONAPI.Config](JSONAPI.Config.md): Configuration struct containing JSON API information for a request

- [JSONAPI.ContentTypeNegotiation](JSONAPI.ContentTypeNegotiation.md): Provides content type negotiation by validating the `content-type`
and `accept` headers.
- [JSONAPI.Deprecation](JSONAPI.Deprecation.md):   Generate warnings in places where we want to deprecate functions or struct parameters

- [JSONAPI.Deserializer](JSONAPI.Deserializer.md): This plug flattens incoming params for ease of use when casting to changesets.
As a result, you are able to pattern match specific attributes in your controller
actions.
- [JSONAPI.EnsureSpec](JSONAPI.EnsureSpec.md): A helper Plug to enforce the JSON API specification

- [JSONAPI.ErrorView](JSONAPI.ErrorView.md): 
- [JSONAPI.Exceptions](JSONAPI.Exceptions.md)
- [JSONAPI.FormatRequired](JSONAPI.FormatRequired.md): Enforces the JSONAPI format of {"data" => {"attributes" => ...}} for request bodies

- [JSONAPI.IdRequired](JSONAPI.IdRequired.md): Ensure that the URL id matches the id in the request body and is a string

- [JSONAPI.Paginator](JSONAPI.Paginator.md): Pagination strategy behaviour

- [JSONAPI.QueryParser](JSONAPI.QueryParser.md): Implements a fully JSONAPI V1 spec for parsing a complex query string via the
`query_params` field from a `Plug.Conn` struct and returning Elixir datastructures.
The purpose is to validate and encode incoming queries and fail quickly.
- [JSONAPI.ResponseContentType](JSONAPI.ResponseContentType.md): Simply add this plug to your endpoint or your router :api pipeline and it will
ensure you return the correct response type.
- [JSONAPI.Serializer](JSONAPI.Serializer.md): Serialize a map of data into a properly formatted JSON API response object

- [JSONAPI.UnderscoreParameters](JSONAPI.UnderscoreParameters.md): Takes dasherized JSON:API params and converts them to underscored params. Add
this to your API's pipeline to aid in dealing with incoming parameters such as query
params or data.
- [JSONAPI.Utils.DataToParams](JSONAPI.Utils.DataToParams.md): Converts a Map representation of the JSON:API resource object format into a flat Map convenient for
changeset casting.

- [JSONAPI.Utils.IncludeTree](JSONAPI.Utils.IncludeTree.md): Internal utility for building trees of resource relationships

- [JSONAPI.Utils.String](JSONAPI.Utils.String.md): String manipulation helpers.

- [JSONAPI.View](JSONAPI.View.md): A View is simply a module that defines certain callbacks to configure proper
rendering of your JSONAPI documents.

- Exceptions
  - [JSONAPI.Exceptions.InvalidQuery](JSONAPI.Exceptions.InvalidQuery.md): Defines a generic exception for when an invalid query is received and is unable to be parsed nor handled.

