📑
GitHub GraphQL APIのsearchクエリのページネーションにおいて、次のページを取得する方法
概要
GitHub GraphQL APIのsearchクエリのページネーションにおいて、次のページを取得する方法を記載します。
やってみる
まず1ページ目を取得します。
{
search(query: "tsu", type: REPOSITORY, first: 3) {
edges {
node {
... on Repository {
nameWithOwner
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
レスポンスになります。
{
"data": {
"search": {
"edges": [
{
"node": {
"nameWithOwner": "cswl/tsu"
}
},
{
"node": {
"nameWithOwner": "tsuru/tsuru"
}
},
{
"node": {
"nameWithOwner": "processone/tsung"
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "Y3Vyc29yOjM="
}
}
}
}
次に2ページ目を取得します。レスポンスのendCursorをafterに指定します。
{
search(query: "tsu", type: REPOSITORY, first: 3, after: "Y3Vyc29yOjM=") {
edges {
node {
... on Repository {
nameWithOwner
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
レスポンスになります。
{
"data": {
"search": {
"edges": [
{
"node": {
"nameWithOwner": "google/tsunami-security-scanner"
}
},
{
"node": {
"nameWithOwner": "egoist/tsup"
}
},
{
"node": {
"nameWithOwner": "tsugiproject/tsugi"
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "Y3Vyc29yOjY="
}
}
}
}
以上です。
Discussion