在我的AWS AppSync中,使用DynamoDB作为后端,我有一个非常简单的架构结构。
type Demo {
id: ID!
name: String!
date: String!
}
type DemoConnection {
items: [Demo]
nextToken: String
}
input ListFilter {
limit: Int
nextToken: String
}
我有这个查询来列出所有演示
listAllDemo(input: ListFilter): DemoConnection
解析器的外观为-
{
"version" : "2017-02-28",
"operation" : "Scan",
"limit": #if($context.arguments.limit) $context.arguments.limit #else 10 #end,
"nextToken": #if($context.arguments.input.nextToken) "$context.arguments.input.nextToken" #else null #end
}
和响应映射模板为
{
"items": $util.toJson($context.result.items),
"nextToken": $util.toJson($context.result.nextToken)
}
我创建了约13条记录来测试“ nextToken”。它返回了一个令牌以及10个结果,我用它来获取其他结果。
还有一些其他API可以从数据库中删除这些记录。即使当我现在在数据库中有7条记录时,发生的情况也是“ listAll
”返回nextToken,但不应该,尽管使用nextToken下一个结果集为空白。
即使记录不存在,我也无法理解为什么我得到了nextToken。