Как поместить / обновить вложенные данные с помощью GraphQL? - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь запустить свой первый бэкэнд GraphQL с помощью AWS AppSync.Я просто пытаюсь понять, как использовать связи «один ко многим».Я ожидаю получить множество связанных объектов в виде списка дочерних элементов и иметь возможность написать некоторые из этих дочерних элементов при создании нового пользователя.

type User {
    id: ID!
    name: String!
    records: [Records!]!
}
type Records {
    id: ID!
    userId: ID!
    title: String!
    ... etc ...
}

Используя интерфейс AppSync, я нажимаю Create Resourcesодин раз для создания таблицы записей и еще раз для создания таблицы пользователей, оба в DynamoDB.Это также автоматически добавляет в мою схему мутации, подписки, типы ввода и другие типы и создает для меня средства распознавания.

Каков синтаксис мутации для создания объектов Record, связанных с моими объектами User?Как я могу поставить данные записи при создании пользователя?

При необходимости я могу включить больше схем, которые автоматически генерирует AppSync.

1 Ответ

0 голосов
/ 31 мая 2018

Поскольку вы используете две таблицы DynamoDB (пользователи и записи), вам нужно будет сделать два вызова DynamoDB во время мутации CreateUser.Один из способов сделать два вызова DynamoDB в одной мутации - использовать операцию DynamoDB BatchPutItem .

Чтобы использовать BatchPutItem, вам необходимо изменить resolver , который присоединен к вашей мутации CreateUser.Средство распознавания отвечает за принятие вашего запроса graphQL, преобразование его в операцию DynamoDB, а затем преобразование результатов операции DynamoDB в ответ graphQL.Решающие элементы имеют два компонента: шаблон сопоставления запроса и шаблон сопоставления ответа.

Шаблон сопоставления запроса будет отвечать за получение аргументов мутации и преобразование их в запрос DynamoDB BatchPutItem.

Шаблон сопоставления ответов распознавателя будет отвечать за преобразование результата операции DynamoDB BatchPutItem в тип / структуру возврата вашей мутации.

Вот руководство по использованиюмноготабличный BatchPutItem в резольвере: https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-batch.html

Вот руководство по использованию языка шаблонов, необходимого для резольверов: https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-programming-guide.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...