Using variables / aliases / fragments / directives in queries
Using variables
In order to make a query re-usable, it can be made dynamic by using variables.
Example: Fetch an author by their author_id
:
Using aliases
Aliases can be used to return objects with a different name than their field name. This is especially useful while fetching the same type of objects with different arguments in the same query.
Example: First, fetch all articles. Second, fetch the two top-rated articles. Third, fetch the worst-rated article:
Using fragments
Sometimes, queries can get long and confusing. A fragment is a set of fields with any chosen name. This fragment can then be used to represent the defined set.
Example: Creating a fragment for a set of article
fields (id
and
title
) and using it in a query:
Using directives
Directives make it possible to include or skip a field based on a boolean expression passed as a query variable.
@include(if: Boolean)
With @include(if: Boolean)
, it is possible to include a field in the
query result based on a Boolean expression.
Example: The query result includes the field publisher
, as
$with_publisher
is set to true
:
Example: The query result doesn't include the field publisher
, as
$with_publisher
is set to false
:
@skip(if: Boolean)
With @skip(if: Boolean)
, it is possible to exclude (skip) a field in
the query result based on a Boolean expression.
Example: The query result doesn't include the field publisher
, as
$with_publisher
is set to true
:
Example: The query result includes the field publisher
, as
$with_publisher
is set to false
: