Relay API Reference - Query / Subscription¶
Table of contents
query / subscription syntax¶
query|subscription [<op-name>] {
connection-object [([argument])]{
connection-object-fields
}
}
Key | Required | Schema | Description |
---|---|---|---|
op-name | false | Value | Name query/subscription for observability |
connection-object | true | ConnectionObject | Name of the table connection |
argument | false | Argument | One or more filter criteria, instructions for sorting order or pagination |
Example: Relay Query
query {
author_connection(first: 2){
pageInfo {
hasNextPage
endCursor
}
edges {
cursor
node {
id
name
username
}
}
}
}
Example: Relay Subscription
subscription {
author_connection(first: 2){
pageInfo {
hasNextPage
endCursor
}
edges {
cursor
node {
id
name
username
}
}
}
}
Note
For details of usage, please see this page.
Syntax definitions¶
Connection Object¶
connection-object {
pageInfo: {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
edges: {
cursor
node: {
id
field1
field2
json_field[(path: String)]
..
nested object1
nested object2
aggregate nested object1
..
}
}
}
Field | Type |
---|---|
pageInfo | PageInfo! |
edges | [Edge!]! |
Note
For more details on the Relay connection
object type, refer to the Relay docs.
PageInfo¶
Information useful for pagination.
type PageInfo {
hasNextPage: Boolean!
hasPreviousPage: Boolean!
startCursor: String!
endCursor: String!
}
Note
For more details on the Relay PageInfo
object type, refer to the Relay docs.
Edge¶
Edge is an object type that consists of a cursor and node
fields.
node
is a table object type which implements the Relay Node
interface.
type tableEdge {
cursor: String!
node: table!
}
Cursor¶
The cursor field returns a unique non-null String value which is useful for pagination.
Note
For more details on the Relay cursor
, refer to the Relay docs.
Argument¶
DistinctOnExp | WhereExp | OrderByExp | PaginationExp
DistinctOnExp¶
Same as the generic DistinctOnExp
OrderByExp¶
Same as the generic OrderByExp
PaginationExp¶
Forward Pagination:
first: Integer [after: Cursor]
query {
article_connection(
first: 2
after: "eyJpZCIgOiAzfQ=="
){
pageInfo {
startCursor
endCursor
hasPreviousPage
hasNextPage
}
edges {
cursor
node {
title
content
author_id
}
}
}
}
Backward Pagination:
[last: Integer] [before: Cursor]
query {
article_connection(
last: 2
before: "eyJpZCIgOiA0fQ=="
){
pageInfo {
startCursor
endCursor
hasPreviousPage
hasNextPage
}
edges {
cursor
node{
title
content
author_id
}
}
}
}