Я буду +1 ваш запрос в качестве особого требования. Пожалуйста, следите за последними анонсами AppSync в будущем.

онравилось работать сAWS Amplify в последнее время его генерация кода для запросов GraphQL на основе определенной схемы является выдающейся.

Я столкнулся с одной сложностью для определения пользовательской логики / проверки на стороне сервера. Из сумкиAppSync (часть, ответственная за API GraphQL в Amplify) генерирует преобразователи и таблицы DynamoDB для вашей схемы. Резольверы создаются с использованиемApache Velocity язык шаблонов, и если вы новичок в этом, это немного кривая обучения, на мой взгляд.

Кроме того, эти резольверы автоматически генерируются Amplify cli. Я не уверен, имеет ли смысл их редактирование в консоли AppSync или локально, поскольку каждый раз, когда мы вносим изменения в API, они автоматически генерируются снова?

Чтобы добавить к этому, эти распознаватели, которые автоматически генерируются, на самом деле многого достигают с точки зрения объединения моделей типов, включая поиск и проверки подлинности, я действительно не хочу касаться их, так как скорость разработки, включаемая автоматической генерацией, безумна.

Следовательно, только другое решение для введения моей пользовательской логики - это лямбда-функции, которые прослушивают события создания / обновления связанных таблиц DynamoDB.

Я думаю, что могу настроить это так, как показано ниже, по сути, позволяя пользователям использовать GraphQL api нормально, и когда действие, которое требует проверки сервера, будет выполнено, реагировать на него в лямбда-выражении?

Например, игрок добавляет предмет в свой инвентарь, мы запускаем лямбда-функцию, чтобы проверить, был ли у игрока этот предмет раньше, если он не был приобретен, мы проверяем данные предмета и вычитаем золото его стоимости из таблицы игрока. Я думаю, что это работает нормально, но мои опасения

Мы разрешаем сначала записывать непроверенные данные в базу данных (хотя это проверяется системой типов graphql и проверкой аутентификации).Дополнительные затраты на привлечение Lambda (на мой взгляд, стоит сэкономить время и возможность использовать NodeJS вместо Apache Velocity для определения языка)

Я что-то упустил?

Таким образом, лямбда выполнит валидацию за кулисами, мы предполагаем, что большинство пользователей здесь хорошие актеры, и данные, которые они передают в GraphQL api, верны, поскольку они используют наш клиент.

Если данные неожиданные (плохой актер), лямбда отреагирует и забанит пользователя.

Является ли это решение жизнеспособным / общим, есть ли другая альтернатива?

Ответы на вопрос(0)

Ваш ответ на вопрос