Вложенная мутация GraphQL - PullRequest
       7

Вложенная мутация GraphQL

0 голосов
/ 21 февраля 2019

Я использую AWS Appsync и Amplify.Фрагмент моей схемы GraphQL выглядит следующим образом:

type Recipe
@model
@auth(rules: [{allow: owner}])
{
 id: ID!
 title: String!
 key: String!
 courses: [Course!]!
}

type Course
@model
@auth(rules: [{allow: owner}])
{
  id: ID!
  name: String!
}

При амплификации push создаются таблицы DynamoDB Recipe и Course

После прочтения многих уроков я все еще не получаюэто как добавить рецепт в GraphiQL.

Как мне вставить новый рецепт, имеющий ссылку на курс и избежать дубликатов в таблице курсов?

1 Ответ

0 голосов
/ 23 февраля 2019

Чтобы создать кратные Recipe ссылки на один и тот же Course без дубликатов в таблице Course, вам необходимо спроектировать отношение «многие ко многим».

Пока что отношение, которое вы создали,AppSync недостаточно для понимания, вам не хватает атрибутов @connection.Вы можете прочитать этот ответ на github , чтобы получить объяснение того, как спроектировать это отношение «многие ко многим» в AppSync

. После разработки отношения вы будете использовать мутацию для вставки данных,и вполне вероятно, что AppSync сгенерирует для вас код мутации (если нет, используйте amplify codegen в консоли).После этого вы сможете создавать данные.

Поскольку вы используете DynamoDB с несколькими таблицами (режим по умолчанию для ampify / AppSync), вам потребуется:

  • Вызвать несколько мутаций подряд
  • Использоватьпользовательский распознаватель, как описано в этом SO-ответе
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...