AWS Appsync $ ctx против $ контекста в преобразователях

#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% меньше.