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(root, info):
        return []