Help us understand the problem. What is going on with this article?

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

はじめに

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

impl_s
令和プログラマー
impl
ReactNativeのリーディングカンパニー
https://impl.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away