0

我正在尝试使用 Aurora RDS 实现 Appsync。获取查询返回所有属性值为空的响应。我认为它能够正确连接数据库,因为当我故意拼错表名时看到了一些错误。我不确定问题出在哪里。我用 Dynamodb 尝试了相同的实现,效果很好。这是解析器的问题还是与权限相关的问题?

响应如下所示:

回复:

{
  "data": {
    "getTest": {
      "id": null,
      "name": null,
      "surname": null
    }
  }
}

数据库表描述:

id  int(11) 
name    text    
surname text

AppSync GraphQL 架构是:

 type Query {
    getTest(id: ID!): Test
}

type Test {
    id: ID
    name: String
    surname: String
}

schema {
    query: Query
}

请求解析器:

{
    "version": "2018-05-29",
    "statements": [
        "select * from TestTable where id = '$ctx.args.id'"
    ]
}

响应解析器:

#if($ctx.error)
    $utils.error($ctx.error.message, $ctx.error.type)
#end
$utils.toJson($utils.rds.toJsonObject($ctx.result)[0])
4

1 回答 1

0

我能够解决我的问题。问题在于在响应解析器中引用结果。在将另一个 [0] 添加到结果对象后,它起作用了。

#if($ctx.error)
    $utils.error($ctx.error.message, $ctx.error.type)
#end
$utils.toJson($utils.rds.toJsonObject($ctx.result)[0][0])

于 2022-02-02T12:22:45.877 回答