graphql - “queryAll”查询类型中的 nextToken
问题描述
我的 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 可以从数据库中删除这些记录。发生的情况是,即使我现在在 DB 中有 7 条记录,“ listAll
”也会返回 nextToken ,它不应该这样做,尽管使用这个 nextToken 下一个结果集是空白的。
即使没有记录,我也无法理解为什么我会得到这个 nextToken。
解决方案
推荐阅读
- python - Python中的多处理for循环在一段时间后停止,程序继续使用单线程运行
- r - 使用 googlesheets4 或任何其他 R 包在 google sheet 中命名工作表版本
- android - 带有复选框的警报对话框
- javascript - ./src/Components/ContactForm.jsx 第 37 行:'sendEmail' 未定义 no-undef
- kubernetes - calico-kube-controllers 和 calico-node 未准备好 (CrashLoopBackOff)
- java - criteriaBuilder.greaterThanOrEqualTo 比较没有时间的日期
- javascript - 当用户完成绘制多边形时如何监听事件?
- c# - 接受 ASP.NET 端点中的 int 或对象
- reactjs - 获取删除请求返回:未处理的拒绝(TypeError):无法在“窗口”上执行“获取”:在无 Cors 模式下不支持“删除”
- azure - 如何检查端口是否打开?