“ queryAll”查询类型中的nextToken

时间:2019-01-04 09:00:39

标签: graphql aws-appsync

在我的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。

0 个答案:

没有答案