Using Document Variables
GraphQL supports query documents that declare variables that can be accepted to fill-in values. This is a useful mechanism for reusing GraphQL documents---instead of attempting to interpolate values yourself.
- To support variables, simply define them for your query document as the specification expects, and pass in a
variables
option toAbsinthe.run
. - If you're using absinthe_plug, variables are passed in for you automatically after being parsed
from the query parameters or
POST
body.
Here's an example of defining a non-nullable variable, id
, in a document and then executing the document with a value for the variable:
"""
query GetItem($id: ID!) {
item(id: $id) {
name
}
}
"""
|> Absinthe.run(MyAppWeb.Schema, variables: %{"id" => "bar"})
# Result
{:ok, %{data: %{"item" => %{"name" => "Bar"}}}}