Создать подключенный объект в GraphQL через мутацию - PullRequest
0 голосов
/ 21 февраля 2019

Как лучше всего создавать объект с помощью мутации, связанной с другим объектом.

Использование следующей схемы:

type Question @model {
  id: ID!
  text: String!
  answers: [Answer] @connection(name: "QuestionAnswers")
}
type Answer @model {
  id: ID!
  text: String!
  question: Question @connection(name: "QuestionAnswers")
}

Ошибка следующего (и его вариантов):

mutation CreateAnswer {
  createAnswer(input: {
    text:"Yes",
    question: {
      id: "9d38c759-6b64-4c1f-9e0e-d3b95a72b3a8"
    }
  }) 
    {
        id
    }
  }

Код сервера:

mutation CreateAnswer($input: CreateAnswerInput!) {
  createAnswer(input: $input) {
    id
    text
    question {
      id
      text
      answers {
        nextToken
      }
    }
  }
}

С учетом вышеизложенного, получая следующую ошибку:

"Ошибка проверки типа WrongType: аргумент 'input' со значением 'ObjectValue {objectFields = [ObjectField {name =' text ', value = StringValue {value = '3'}}, ObjectField {name = 'question', value = ObjectValue {objectFields = [ObjectField {name = 'id', value = StringValue {value = '9d38c759-6b64-4c1f-9e0e-d3b95a72b3a8'}}]}}]} 'содержит поле, отсутствующее в' CreateAnswerInput ':' question '@' createAnswer '"

1 Ответ

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

Кажется, что это может быть соглашение об именовании в AppSync.Ниже работал для меня:

mutation createAnswer {
  createAnswer (input: {
    text: "5"
    answerQuestionId: "9d38c759-6b64-4c1f-9e0e-d3b95a72b3a8"
  }) {
    id
  }

Добавление ответ в QuestionId было то, что было нужно.

...