Skip to main content
Version: v2.x

Relay API Reference - Query / Subscription

query / subscription syntax

query|subscription [<op-name>] {
connection-object [([argument])]{
connection-object-fields
}
}
KeyRequiredSchemaDescription
op-namefalseValueName query/subscription for observability
connection-objecttrueConnectionObjectName of the table connection
argumentfalseArgumentOne 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
}
}
}
}q
Note

For details of usage, please see this page.

Syntax definitions

ConnectionObject

connection-object {
pageInfo: {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
edges: {
cursor
node: {
id
field1
field2
json_field[(path: String)]
..
nested object1
nested object2
aggregate nested object1
..
}
}
}
FieldType
pageInfoPageInfo!
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

Same as the generic DistinctOnExp

WhereExp

Same as the generic WhereExp

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
}
}
}
}