graphene-sqlalchemy comes with pre-defined
connection fields to quickly create a functioning relay API.
SQLAlchemyConnectionField, you have access to relay pagination,
sorting and filtering (filtering is coming soon!).
To be used in a relay connection, your
SQLAlchemyObjectType must implement
Node interface from
graphene.relay. This handles the creation of
Edge types automatically.
The following example creates a relay-paginated connection:
class Pet(Base): __tablename__ = 'pets' id = Column(Integer(), primary_key=True) name = Column(String(30)) pet_kind = Column(Enum('cat', 'dog', name='pet_kind'), nullable=False) class PetNode(SQLAlchemyObjectType): class Meta: model = Pet interfaces=(Node,) class Query(ObjectType): all_pets = SQLAlchemyConnectionField(PetNode.connection)
To disable sorting on the connection, you can set
class Query(ObjectType): all_pets = SQLAlchemyConnectionField(PetNode.connection, sort=None)