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

Link to this type

pipeline_modifier_fun()

View Source
@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()
]
@type run_result() :: {:ok, result_t()} | {:error, String.t()}

Functions

Link to this function

run(document, schema, options \\ [])

View Source
@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 the Absinthe.Adapter behaviour and the Absinthe.Adapter.Passthrough and Absinthe.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.

Link to this function

run!(input, schema, options \\ [])

View Source
@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.