# jsonapi v1.12.0 - Table of Contents Fully functional JSONAPI V1 Serializer as well as a QueryParser for Plug based projects and applications. ## Pages - [JSONAPI Elixir](readme.md) ## 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.