はじめに
AWSのAppSyncやAmplifyを使用することで、GraphQLのAPIを容易に構築することができます。
返却されるデータをページ分割し、リクエストに応じて追加のデータを取り出すことができます。
そのためには、nextTokenをAPIから返却させ、次のリクエストに含める必要があります。
レスポンスにnextTokenを含める方法
レスポンスにnextTokenを含めるには、以下の項目を設定します。
// 1回のリクエストで帰ってくるデータは最大20件に設定
"limit": $util.defaultIfNull($ctx.args.first, 20),
"nextToken": $util.toJson($util.defaultIfNullOrEmpty($ctx.args.nextToken, null)),
:リクエストマッピングテンプレートの例
{
"version": "2017-02-28",
"operation": "Query",
"query": {
...
},
// 1回のリクエストで帰ってくるデータは最大20件に設定
"limit": $util.defaultIfNull($ctx.args.first, 20),
...
"nextToken": $util.toJson($util.defaultIfNullOrEmpty($ctx.args.nextToken, null)),
"select": "ALL_ATTRIBUTES",
}
まとめ
"nextToken": $util.toJson($util.defaultIfNullOrEmpty($ctx.args.nextToken, null)),
と設定することで、nextTokenが返却されます。
次のリクエストにnextTokenを含めることで、追加のデータをクエリすることができます。