View Source Absinthe (absinthe v1.7.8)
Documentation for the Absinthe package, a toolkit for building GraphQL APIs with Elixir.
For usage information, see the documentation, which includes guides, API information for important modules, and links to useful resources.
Summary
Functions
Evaluates a query document against a schema, with options.
Evaluates a query document against a schema, without options.
Types
@type pipeline_modifier_fun() :: (Absinthe.Pipeline.t(), Keyword.t() -> Absinthe.Pipeline.t())
@type result_error_t() :: %{message: String.t()} | %{ message: String.t(), locations: [%{line: pos_integer(), column: integer()}] }
@type result_selection_t() :: %{ required(String.t()) => nil | integer() | float() | boolean() | binary() | atom() | result_selection_t() | [result_selection_t()] }
@type result_t() :: %{data: nil | result_selection_t()} | %{data: nil | result_selection_t(), errors: [result_error_t()]} | %{errors: [result_error_t()]}
@type run_opts() :: [ context: %{}, adapter: Absinthe.Adapter.t(), root_value: term(), operation_name: String.t(), analyze_complexity: boolean(), variables: %{optional(String.t()) => any()}, max_complexity: non_neg_integer() | :infinity, pipeline_modifier: pipeline_modifier_fun() ]
Functions
@spec run( binary() | Absinthe.Language.Source.t() | Absinthe.Language.Document.t(), Absinthe.Schema.t(), run_opts() ) :: run_result()
Evaluates a query document against a schema, with options.
Options
:adapter
- The name of the adapter to use. See theAbsinthe.Adapter
behaviour and theAbsinthe.Adapter.Passthrough
andAbsinthe.Adapter.LanguageConventions
modules that implement it. (Absinthe.Adapter.LanguageConventions
is the default value for this option.):operation_name
- If more than one operation is present in the provided query document, this must be provided to select which operation to execute.:variables
- A map of provided variable values to be used when filling in arguments in the provided query document.:context
-> A map of the execution context.:root_value
-> A root value to use as the source for toplevel fields.:analyze_complexity
-> Whether to analyze the complexity before executing an operation.:max_complexity
-> An integer (or:infinity
) for the maximum allowed complexity for the operation being executed.
Examples
"""
query GetItemById($id: ID) {
item(id: $id) {
name
}
}
"""
|> Absinthe.run(App.Schema, variables: %{"id" => params[:item_id]})
See the Absinthe
module documentation for more examples.
@spec run!( binary() | Absinthe.Language.Source.t() | Absinthe.Language.Document.t(), Absinthe.Schema.t(), run_opts() ) :: result_t() | no_return()
Evaluates a query document against a schema, without options.
Options
See run/3
for the available options.