AWS

【AppSync・Amplify】ページングを実現する[ nextToken ]のリゾルバ設定

AWS
この記事は約2分で読めます。

はじめに

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を含めることで、追加のデータをクエリすることができます。