Связи (Connection)¶
Связь Connection
это улучшенная версия списка List
, которая дает возможность делать пагинацию и слайсинг.
Связь Connection
создается с помощью relay.Connection
и relay.ConnectionField
.
Пример¶
Если мы хотим создать связь Connection
с некоторым узлом, то необхоимо создать подкласс Connection
.
В следующем примере extra
будет дополнительным полем в Connection
, а other
дополнительным полем в Connection Edge
.
class ShipConnection(Connection):
extra = String()
class Meta:
node = Ship
class Edge:
other = String()
КлассShipConnection
будет иметь полеpageInfo
и полеedges
(список объектовShipConnection.Edge
). ОбъектEdge
будет иметь поле node
, связанное с определенным узлом (в ShipConnection.Meta
) и полеother
, которое мы определяли в классе.
Поле связи (Connection Field)¶
Вы можете создавать поля в любом Connection, а любой ObjectType, который реализуетNode
, будет иметь Connection
по дефолту.
class Faction(graphene.ObjectType):
name = graphene.String()
ships = relay.ConnectionField(ShipConnection)
def resolve_ships(self, info):
return []