API Reference absinthe v1.6.0


Documentation for the Absinthe package, a toolkit for building GraphQL APIs with Elixir.

Absinthe supports an adapter mechanism that allows developers to define their schema using one code convention (eg, snake_cased fields and arguments), but accept query documents and return results (including names in errors) in another (eg, camelCase).

This defines an adapter that supports GraphQL query documents in their conventional (in JS) camelcase notation, while allowing the schema to be defined using conventional (in Elixir) underscore (snakecase) notation, and tranforming the names as needed for lookups, results, and error messages.

The default adapter, which makes no changes to incoming query document ASTs or outgoing results.

Strict version of Absinthe.Adapter.LanguageConventions that will reject improperly formatted external names.

Underscores external input and leaves external input alone. Unlike the Absinthe.Adapter.Passthrough this does not break introspection (because introspection relies on underscoring incoming introspection queries which we still do).

An error during analysis.

Represents the graphql document to be executed.

Blueprint Execution Data

Extra metadata passed to aid complexity analysis functions, describing the current field's environment.

An error during execution.

Introspection support.

Handles logging of Absinthe-specific events.

Middleware enables custom resolution behaviour on a field.

This plugin enables asynchronous execution of a field.

Batch the resolution of multiple fields.

This is the default middleware. It assumes the the object it receives is a map and uses Map.get/2 to get the value for this field. If this field is already marked as resolved, then this middleware does not touch it.

Middleware that just passes the parent down to the children.

Gather and report telemetry about an individual field resolution

Behaviour for Absinthe Phases.

Pass on context and root value to document.

Gather and report telemetry about an operation.

Execute a pipeline of phases.

Plugin Behaviour

Information about the current resolution. It is created by adding field specific information to the more general %Absinthe.Blueprint.Execution{} struct.

Handy functions for returning async or batched resolution functions

Build GraphQL Schemas

Exception raised when a schema is invalid

Provides a set of macro's to use when creating a schema. Especially useful when moving definitions out into a different module than the schema itself.

Exception raised when a schema is invalid

Experimental: Persistent Term based Schema Backend

Provides the directives available for SDL schema definitions.

Experimental: Behaviour for providing schema data

An error during serialization.

Real time updates via GraphQL

This module handles broadcasting documents that are local to this node

Serializer responsible for packing and unpacking pipeline stored in the Elixir registry.

Pubsub behaviour expected by Absinthe to power subscriptions

Used to define an argument.

This module contains the following additional data types

Used by the GraphQL runtime as a way of modifying execution behavior.

Used to define an enum type, a special scalar that can only have a defined set of values.

A possible value for an enum.

Used to define a field.

Defines a GraphQL input object

A defined interface type that represent a list of named fields and their arguments.

A wrapping type which declares the type of each item in the list.

A type that wraps an underlying type, acting identically to that type but adding a non-null constraint.

Represents a non-leaf node in a GraphQL tree of information.

Represents a primitive value.

A unions is an abstract type made up of multiple possible concrete types.

Mix Tasks

Generate a schema.json file

Generate a schema.graphql file.