AWS AppSyn c GraphQL «Ошибка ввода неверного токена пагинации» - PullRequest
0 голосов
/ 27 февраля 2020

Я получаю ошибку "Invalid pagination token" как в React, так и в консоли AWS, даже если я предоставляю правильный nextToken, который был указан в предыдущем запросе.

error : {"data": {"myQueryName": null}, "errors": [{"path": ["myQueryName"], "data": null, "errorType": "DynamoDB: UserIllegalArgumentException", "errorInfo": NULL, "место": [{ "строка": 2, "колонна": 3, "SourceName": NULL}], "сообщение": "com.amazon aws .deepdi * * .common.pagination.InvalidPaginationTokenException тысячи двадцать-дв : Указан неверный маркер пагинации. "}]}

Первый запрос, из которого я получаю nextToken и сохраняю его в this.state.nextTkn:

let allItems = await API.graphql(graphqlOperation(queries.myQueryName,
      {filter: { id: { notContains: null }, uuuid: { contains: "uuu1" } }, limit: 4 }
      ));

Последующий запрос, запрашивающий следующие элементы:

let allItems = await API.graphql(graphqlOperation(queries.myQueryName,
          {filter: { id: { notContains: null }, uuuid: { contains: "uuu1" } }, limit: 4, nextToken: this.state.nextTkn }
          ));

Шаблон резолвера Query.myQueryName.req.vtl

#set( $limit = $util.defaultIfNull($context.args.limit, 10) )
#set( $ListRequest = {
  "version": "2017-02-28",
  "limit": $limit
} )
#if( $context.args.nextToken )
  #set( $ListRequest.nextToken = $util.toJson($context.args.nextToken) )
#end
#if( $context.args.filter )
  #set( $ListRequest.filter = $util.parseJson("$util.transform.toDynamoDBFilterExpression($ctx.args.filter)") )
#end
#if( !$util.isNull($modelQueryExpression)
                        && !$util.isNullOrEmpty($modelQueryExpression.expression) )
  $util.qr($ListRequest.put("operation", "Query"))
  $util.qr($ListRequest.put("query", $modelQueryExpression))
  #if( !$util.isNull($ctx.args.sortDirection) && $ctx.args.sortDirection == "DESC" )
    #set( $ListRequest.scanIndexForward = false )
  #else
    #set( $ListRequest.scanIndexForward = true )
  #end
#else
  $util.qr($ListRequest.put("operation", "Scan"))
#end
$util.toJson($ListRequest)

Шаблон резолвера Query.myQueryName.res.vtl

$util.toJson($ctx.result)
...