在AppSync Resolver中使用DynamoDB的scan API来实现分页,并通过DynamoDB的exclusiveStartKey参数来实现跳转到特定页面。
具体实现步骤如下:
{
"version": "2017-02-28",
"operation": "Scan",
"limit": $util.defaultIfNull($ctx.args.limit, 10),
"nextToken": $util.toJson($util.defaultIfNullOrBlank($ctx.args.nextToken, null)),
"exclusiveStartKey": $util.toJson($util.base64Decode($ctx.args.exclusiveStartKey))
}
type Query {
paginatedList(limit: Int, nextToken: String, exclusiveStartKey: String): [Item!]!
}
query ListQuery {
paginatedList(limit: 10, nextToken: null, exclusiveStartKey: "eyJhIjoiM1ozak5YVW5zIiwidiI6MSwiZCI6eyJpIjoiUGVvcGxlIiwibCI6IjIwMTYtMTAtMjENCg==") {
items {
id
name
description
}
nextToken
exclusiveStartKey
}
}
其中,exclusiveStartKey的值是一个base64加密的JSON字符串,它代表了上一页的最后一个元素的主键。
通过以上步骤,就可以实现在AppSync中实现分页查询,并实现跳转到特定页面。