Absinthe.Relay
Support for the Relay framework from Elixir, using the Absinthe package.
Installation
Install from Hex.pm:
def deps do
[{:absinthe_relay, "~> 1.3.0"}]
end
Add it to your applications configuration in mix.exs, too:
def application do
[applications: [:absinthe_relay]]
endNote: Absinthe requires Elixir 1.4 or higher.
Upgrading
See CHANGELOG for upgrade steps between versions.
Documentation
See “Usage,” below, for basic usage information and links to specific resources.
- For the tutorial, guides, and general information about Absinthe-related projects, see http://absinthe-graphql.org.
- Links to the API documentation are available in the project list.
Roadmap
See the Roadmap on absinthe-graphql.org.
Related Projects
See the Project List on absinthe-graphql.org.
Usage
Schemas should use Absinthe.Relay.Schema, eg:
defmodule Schema do
use Absinthe.Schema
use Absinthe.Relay.Schema
# ...
end
For a type module, use Absinthe.Relay.Schema.Notation
defmodule Schema do
use Absinthe.Schema.Notation
use Absinthe.Relay.Schema.Notation
# ...
endSee the documentation for Absinthe.Relay.Node, Absinthe.Relay.Connection, and Absinthe.Relay.Mutation for specific usage information.
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
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
Relay supports mutation via a contract involving single input object arguments with and client mutation IDs.
Support in this package is designed to match the Relay Input Object Mutations Specification.
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
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.jsonAn Active Community
The project is under constant improvement by a growing list of contributors, and your feedback is important. Please join us!
Please remember that all interactions in our official spaces follow our Code of Conduct.
License
Released under the BSD license. See LICENCE.md