Я пытаюсь написать распознаватель для AppSync, который выводит значение для логического поля на основе существования записи в DynamoDB.
В настоящее время у меня есть следующий шаблон сопоставления запросов:
{
"version": "2017-02-28",
"operation": "GetItem",
"key": {
"field1": $util.dynamodb.toDynamoDBJson($ctx.args.field1),
"field2": $util.dynamodb.toDynamoDBJson($ctx.args.field2)
}
}
И следующий шаблон сопоставления ответов:
#if($util.isNull($ctx.result))
#set($exists = false)
#else
#set($exists = true)
#end
$util.toJson({
"field1": $ctx.args.field1,
"field2": $ctx.args.field2,
"exists": $exists
})
Это работает правильно, если запись существует, но если ее нет, AppSync просто возвращает «ноль» для всего вызова API и, похоже, не оцениваетшаблон отображения ответов вообще.Можно ли как-нибудь проинструктировать его не делать этого?
Другой вариант - выполнить запрос и посмотреть длину ответа, но я не знаю, как проверить длину в этих шаблонах.