AppSync returns 属性值为来自 AuroraDB 的 null
AppSync returns attribute values as null from AuroraDB
我正在尝试使用 Aurora RDS 实施 Appsync。获取所有属性值为 null 的查询 returns 响应。我认为它能够正确连接数据库,因为我在故意拼错 table 名称时看到了一些错误。我不确定问题出在哪里。
我用 Dynamodb 尝试了相同的实现,它运行良好。这是解析器的问题还是与权限有关的问题?
响应如下所示:
回复:
{
"data": {
"getTest": {
"id": null,
"name": null,
"surname": null
}
}
}
DB table 描述:
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])
我能够解决我的问题。问题在于在响应解析器中引用结果。它在向结果对象添加另一个 [0] 后起作用。
#if($ctx.error)
$utils.error($ctx.error.message, $ctx.error.type)
#end
$utils.toJson($utils.rds.toJsonObject($ctx.result)[0][0])
我正在尝试使用 Aurora RDS 实施 Appsync。获取所有属性值为 null 的查询 returns 响应。我认为它能够正确连接数据库,因为我在故意拼错 table 名称时看到了一些错误。我不确定问题出在哪里。 我用 Dynamodb 尝试了相同的实现,它运行良好。这是解析器的问题还是与权限有关的问题?
响应如下所示:
回复:
{
"data": {
"getTest": {
"id": null,
"name": null,
"surname": null
}
}
}
DB table 描述:
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])
我能够解决我的问题。问题在于在响应解析器中引用结果。它在向结果对象添加另一个 [0] 后起作用。
#if($ctx.error)
$utils.error($ctx.error.message, $ctx.error.type)
#end
$utils.toJson($utils.rds.toJsonObject($ctx.result)[0][0])