Overview of Absinthe GraphQL toolkit
mainAbsinthe is a GraphQL toolkit for Elixir that implements the GraphQL specification. It is designed to be idiomatic to Elixir, utilizing declarative macros for schema definition and a flexible middleware/plugin system for resolution.
Absinthe functionality is divided into two main areas:
- Defining Schemas: Using macros to define data entities, relationships, queries, mutations, subscriptions, custom scalars, and directives. It also allows defining resolution functions to access data.
- Executing Documents: Handling standard GraphQL queries, mutations, and subscriptions. This includes support for variables, complexity analysis for safety, context integration (for authentication/authorization), introspection, and multipart file uploads (via
absinthe_plug).