AWS AppSync-查询

时间:2018-07-24 14:56:30

标签: amazon-web-services aws-appsync id

我目前正在使用AWS AppSync,并找到了一个Web教程。 (链接:https://www.youtube.com/watch?v=0Xbt7VqkJNc

总而言之,这是一个适合初学者的好例子,但是在创建本教程演示的变体/查询时遇到一些问题。

问题在于无法设置单个ID号(例如“ 12345”),因为输出始终是自动生成的ID号。 是否可以更改DynamoDB中的配置,或者此问题与AWS AppSync中的解析器有关?


代码示例:

mutation createTodo {
    createTodo(input: {
    name:"Get milk",
    completed: false
  }) {
    id}
}

query getTodo {
  getTodo(id: "afda5d05-bad0-4436-9f8b-76e92d1228c3" ) {
    id name completed} } 

输出:

{
  "data": {
    "getTodo": {
      "id": "afda5d05-bad0-4436-9f8b-76e92d1228c3",
      "name": "Get milk",
      "completed": false
    }
  }
} 

提前谢谢!

1 个答案:

答案 0 :(得分:2)

视频中演示的示例在输入中接受idnamecompleted字段。如果每次都需要一个随机生成的ID,则可以修改架构以仅在查询name中传递completedcreateTodo。然后,您需要为此查询字段编辑解析器(可以通过单击“模式”页面上“解析器”部分下的createTodo链接来进行此操作)。您可以使用以下定义编辑“请求映射模板”,这样,每次创建Todo时都会生成一个随机ID:

{
  "version": "2017-02-28",
  "operation": "PutItem",
  "key": { "id": { "S": "$util.autoId()"} },
  "attributeValues": {
    "name": { "S": "$context.arguments.name" },
    "completed": { "S": "$context.arguments.completed" }
  }
}

如果在上面的示例中看到第5行,我们将使用内置的实用程序函数来生成autoId:$util.autoId()。这样一来,您就可以为突变随机设置ID。

您可以找到此代码,以及我们其他一些受支持的VTL实用程序功能here