#amazon-web-services #graphql #aws-appsync #appsync-apollo-client #aws-appsync-ios
#amazon-веб-сервисы #graphql #aws-appsync #appsync-apollo-client #aws-appsync-ios
Вопрос:
Я понимаю, что контекст — это то, какое имя вы определяете в своих лямбда-функциях, но когда дело доходит до преобразователей Appsync, я немного сбит с толку. Я видел, как оба, $ctx
и $context
, используются в преобразователях AppSync, в том числе в AWS docs. Некоторые собственные инструменты генерации кода AWS, такие как AWS Amplify CLI, создают преобразователи, которые используют оба в одном коде! Я не могу найти ничего в документах, объясняющих это. Что здесь происходит?
Комментарии:
1. Я нахожусь в процессе очистки наших документов и замены
$context
на$ctx
для обеспечения согласованности. Я добавлю примечание к странице сопоставления преобразователя, объясняющее, что$ctx
это псевдоним. Извините за путаницу.
Ответ №1:
(Разработчик AWS AppSync здесь)
$ctx
и $context
в AWS AppSync ссылаются на тот же самый контекст решателя. Мы добавили $ctx
в качестве псевдонима для $context
, чтобы уменьшить количество символов, которые пользователи должны вводить ( $ctx
на 50% короче, чем $context
!!)
Выбор $context
или $ctx
зависит от личных предпочтений. Я предпочитаю $ctx
, когда я создаю преобразователи AWS AppSync.
Комментарии:
1. спасибо за ответ. Применимо ли то же самое к аргументам? Я видел, как в каком-то месте использовались аргументы $ ctx… ? Есть другие полезные псевдонимы?
2. $ ctx.* и $ context.* относятся к одному и тому же.
3. Небольшое замечание: $ ctx недопустим при ссылке на ключи кэша. Ключи кэширования должны начинаться с $ context.args, $ context.arguments, $ context.identity или $ context.source, в противном случае AppSync завершается ошибкой с 400
4. Почему бы и нет
$c
? печатать приходится на 85% меньше.