Appsync'批量创建'解析器给出“映射模板”错误

问题描述 投票:0回答:1

我正在尝试为我创建的BatchCreateIngredients突变创建一个解析器,但是当我运行突变时,我遇到了MappingTemplate类型的错误,我不知道为什么。

我的表名是IngredientsTable,我没有使用任何认知验证。

突变:

mutation batchCreateIngredient {
  batchCreateIngredients(
    input: [
    {name: "Cookie" vegan: VEGAN glutenfree: GLUTENFREE},
    {name: "Pizza", vegan: VEGAN, glutenfree: GLUTENFREE},
]) {
    items{
      id
      name
      vegan
    }
  }
}

错误消息:

{
  "data": {
    "batchCreateIngredients": null
  },
  "errors": [
    {
      "path": [
        "batchCreateIngredients"
      ],
      "data": null,
      "errorType": "MappingTemplate",
      "errorInfo": null,
      "locations": [
        {
          "line": 6,
          "column": 3,
          "sourceName": null
        }
      ],
      "message": "Item list elements can't be null for table 'IngredientTable' at path '$[tables]'"
    }
  ]
}

我的架构的相关部分:

input CreateIngredientInput {
    name: String!
    vegan: Vegan!
    glutenfree: GlutenFree!
    popularity: Int
}

enum GlutenFree {
    GLUTENFREE
    CONTAINS_GLUTEN
    UNKNOWN
}

type Ingredient {
    name: String!
    id: ID!
    vegan: Vegan
    glutenfree: GlutenFree
    popularity: Int
}

type IngredientConnection {
    items: [Ingredient]
    nextToken: String
}

type Mutation {
    createIngredient(input: CreateIngredientInput!): Ingredient
    batchCreateIngredients(input: [CreateIngredientInput]): IngredientConnection
    updateIngredient(input: UpdateIngredientInput!): Ingredient
    deleteIngredient(input: DeleteIngredientInput!): Ingredient
}

enum Vegan {
    VEGAN
    NON_VEGAN
    UNKNOWN
}

BatchCreateIngredients的解析器:

#set($ingdata = [])
#foreach($ing in ${ctx.args.input})
    $util.qr($ingdata.add($util.dynamodb.toMapValues($item)))
#end

{
    "version" : "2018-05-29",
    "operation" : "BatchPutItem",
    "tables" : {
        "IngredientTable": $utils.toJson($ingdata)
    }
}
amazon-dynamodb graphql velocity aws-appsync resolver
1个回答
0
投票

据我所知,看起来问题出在请求映射模板中。您已经调用了循环变量$ ing,但是您将“$ item”传递给toMapValues函数。你能尝试将“item”改为“ing”吗?

© www.soinside.com 2019 - 2024. All rights reserved.