我的后端使用媒体类型hal + json(rest api)返回json。这里的问题是AWS AppSync的速度解析器返回:
出现词法错误,遇到:\“ _ \”(95),之后:\“。\”,位于未设置 [第8行 第28栏]“
因为媒体类型节点以下划线开头,例如:
{
"_embedded":{
"vehicle-assemblers":[...]
}
}
我相信AppSync使用的引擎抱怨下划线开头的变量。
“配置请求映射模板”(AWS Edit解析器)
## Raise a GraphQL field error in case of a datasource
#if($ctx.error)
$util.error($ctx.error.message, $ctx.error.type)
#end
## If the response is not 200 then return an error.
#if($ctx.result.statusCode == 200)
#set($response = $util.parseJson($ctx.result.body))
$util.toJson($response._embedded.vehicle-assemblers) ##line 8
#else
$utils.appendError($ctx.result.body, $ctx.result.statusCode)
#end
有人知道如何解决此问题吗?
答案 0 :(得分:0)
我能够解决
#if($ctx.error)
$util.error($ctx.error.message, $ctx.error.type)
#end
#if($ctx.result.statusCode == 200)
#set($response = $util.parseJson($ctx.result.body))
#set($vehicles = $util.toJson($response["_embedded"]["vehicle-assemblers"]))
{
"items": $vehicles
}
#else
$utils.appendError($ctx.result.body, $ctx.result.statusCode)
#end