Как ввести массив в мутацию GraphQL - PullRequest
0 голосов
/ 17 января 2019

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

Ошибка: тип Mutation.createTour (Attractions :) должен быть типом ввода, но получил: [Аттракцион].

Вот проблемная мутация

type Mutation {
    createTour(
    title: String!
    description: String!
    attractions: [Attraction]      <----- THIS LINE
    ): Tour
    addCommentToTour(id: ID!, comment: String!): Tour
}

А вот и определения типов, которые у меня есть.

type Attraction {
    title: String
    description: String
    coordinateLat: Int
    coordinateLong: Int
}

type Tour {
    id: ID!
    title: String!
    description: String!
    author: String!
    attractions: [Attraction]      
}

Как я могу получить эту Мутацию для этого массива?

1 Ответ

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

Более или менее уже ответил в комментарии от DanielRearden.

Все входные свойства для мутации должны быть определены как input в вашей схеме. Вы не можете использовать тот же тип, который вы используете для вывода.

В вашем случае вы должны создать дополнительно:

input AttractionInput {
  title: String
  description: String
  coordinateLat: Int
  coordinateLong: Int
}

Основная идея заключается в том, что ваш ввод может отличаться от вывода. Немного избыточного кода, но разделение более четкое.

...