View Source Absinthe.Relay
Support for the Relay framework from Elixir, using the Absinthe package.
installation
Installation
Install from Hex.pm:
def deps do
[
{:absinthe_relay, "~> 1.5.0"}
]
end
Note: Absinthe.Relay requires Elixir 1.10 or higher.
upgrading
Upgrading
See CHANGELOG for upgrade steps between versions.
You may want to look for the specific upgrade guide in the Absinthe documentation.
documentation
Documentation
See "Usage," below, for basic usage information and links to specific resources.
- Absinthe.Relay hexdocs.
- For the tutorial, guides, and general information about Absinthe-related projects, see http://absinthe-graphql.org.
related-projects
Related Projects
See the GitHub organization.
usage
Usage
Schemas should use Absinthe.Relay.Schema
, optionally providing what flavor of Relay they'd like to support (:classic
or :modern
):
defmodule Schema do
use Absinthe.Schema
use Absinthe.Relay.Schema, :modern
# ...
end
For a type module, use Absinthe.Relay.Schema.Notation
defmodule Schema do
use Absinthe.Schema.Notation
use Absinthe.Relay.Schema.Notation, :modern
# ...
end
Note that if you do not provide a flavor option, it will choose the default of :classic
, but warn you
that this behavior will change to :modern
in absinthe_relay v1.5.
See the documentation for Absinthe.Relay.Node, Absinthe.Relay.Connection, and Absinthe.Relay.Mutation for specific usage information.
node-interface
Node Interface
Relay
requires an interface,
"Node"
, be defined in your schema to provide a simple way to fetch
objects using a global ID scheme.
See the Absinthe.Relay.Node module documentation for specific instructions on how do design a schema that makes use of nodes.
connection
Connection
Relay uses Connection (and other related) types to provide a standardized way of slicing and paginating a one-to-many relationship.
Support in this package is designed to match the Relay Cursor Connection Specification.
See the Absinthe.Relay.Connection module documentation for specific instructions on how do design a schema that makes use of nodes.
mutation
Mutation
Relay supports mutation via a contract involving single input object arguments (optionally for Relay Modern) with client mutation IDs (only for Relay Classic).
See the Absinthe.Relay.Mutation module documentation for specific instructions on how to design a schema that makes use of mutations.
supporting-the-babel-relay-plugin
Supporting the Babel Relay Plugin
To generate a schema.json
file for use with the Babel Relay Plugin, run the absinthe.schema.json
Mix task, built-in to Absinthe.
In your project, check out the documentation with:
mix help absinthe.schema.json
community
Community
The project is under constant improvement by a growing list of
contributors, and your feedback is important. Please join us in Slack
(#absinthe-graphql
under the Elixir Slack account) or the Elixir Forum
(tagged absinthe
).
Please remember that all interactions in our official spaces follow our Code of Conduct.
contributing
Contributing
Please follow contribution guide.
license
License
See LICENSE.md.