Проверка уровня поля GraphQL в AppSync - PullRequest
0 голосов
/ 07 января 2020

У меня есть API AppSyn c, который в основном поддерживается магазином DynamoDB. Большинство распознавателей подключаются непосредственно к источникам DynamoDB, не используя лямбды.

Некоторые поля должны иметь ограничения проверки, такие как длина или регулярное выражение. В одном конкретном случае я хотел бы потребовать, чтобы поле state содержало значение ISO 3166-2, такое как US-NY. (Значения перечислений в GraphQL не могут содержать дефисы, поэтому здесь это не вариант.)

Кроме замены некоторых преобразователей на лямбды, единственный способ применить эти виды правил проверки состоит в том, чтобы сделать это в VTL в RequestMappingTemplate. Это будет работать, но это будет утомительно и, вероятно, приведет к дублированию кода. Есть ли альтернативы?

1 Ответ

1 голос
/ 08 января 2020

К сожалению, единственным способом без лямбды является VTL, я предлагаю вместо записи валидации непосредственно внутри RequestMappingTemplate, используя конвейерный преобразователь (менее дублированный)

Конвейерные резольверы содержит одну или несколько функций, которые выполняются по порядку.

Функции позволяют писать общие логики c для повторного использования в нескольких резольверах в вашей схеме. Они подключаются непосредственно к источнику данных и, подобно распознавателю модулей, содержат одинаковый формат шаблона запроса и ответа.


Хороший пример можно найти здесь .

...