Как создать мутацию клиента apollo с пользовательским вводом и переменными - PullRequest
0 голосов
/ 19 марта 2019

У меня есть мутация, которая работает на GraphiQL:

mutation ADDRELEASE{
  createRelease(release: {
    title: "Release Title"
    releaseType: "Album"

  }) {
    title
    id
  }
} 

Я пытаюсь использовать клиент apollo с graphql-tag и устанавливать переменные мутации следующим образом:

 const CREATE_RELEASE = gql`
  mutation($release: {
    $title: String 
    $releaseType: String
  }){
    createRelease(release: {
      title: $title 
      releaseType: $releaseType

    }){
    id
   }
  }
`

Полагаю, дело в синтаксисе. Не могу понять, как заставить это работать.

1 Ответ

0 голосов
/ 19 марта 2019

Нет необходимости определять переменную для $release и двух других переменных, если вы собираетесь использовать только $title и $releaseType. Вы можете сделать либо:

# Replace ReleaseInput with the appropriate type based on the schema
mutation($release: ReleaseInput) {
  createRelease(release: $release) {
    id
  }
}

или ...

mutation(
  $title: String 
  $releaseType: String
) {
  createRelease(release: {
    title: $title 
    releaseType: $releaseType
  }) {
    id
  }
}

Для чего бы то ни было, вы также можете тестировать запросы с переменными в GraphiQL. Вы можете открыть редактор переменных, нажав QUERY VARIABLES в нижнем левом углу страницы.

...