Как использовать Hal+Json с AWS AppSync
Мой бэкэнд перезапускает json, используя тип носителя hal+json(остальные api). Проблема здесь в том, что резольвер скорости AWS AppSync возвращает:
Лексическая ошибка, Обнаружено: \"_\" (95), после:\".\" В нерабочем состоянии[строка 8, столбец 28]"
Поскольку узел типа носителя начинается с подчеркивания, пример:
{
"_embedded":{
"vehicle-assemblers":[...]
}
}
Я считаю, что движок, который использует AppSync, жалуется на переменную, начинающуюся с подчеркивания.
"Настроить шаблон сопоставления запросов" (AWS Edit Resolver)
## 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
Кто-нибудь есть идеи, как решить эту проблему?
1 ответ
Я смог решить
#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