Connection¶
A connection is a vitaminized version of a List that provides ways of
slicing and paginating through it. The way you create Connection types
in graphene
is using relay.Connection
and relay.ConnectionField
.
Quick example¶
If we want to create a custom Connection on a given node, we have to subclass the
Connection
class.
In the following example, extra
will be an extra field in the connection,
and other
an extra field in the Connection Edge.
class ShipConnection(Connection):
extra = String()
class Meta:
node = Ship
class Edge:
other = String()
The ShipConnection
connection class, will have automatically a pageInfo
field,
and a edges
field (which is a list of ShipConnection.Edge
).
This Edge
will have a node
field linking to the specified node
(in ShipConnection.Meta
) and the field other
that we defined in the class.
Connection Field¶
You can create connection fields in any Connection, in case any ObjectType
that implements Node
will have a default Connection.
class Faction(graphene.ObjectType):
name = graphene.String()
ships = relay.ConnectionField(ShipConnection)
def resolve_ships(self, info):
return []