Graphql необязательные переменные операции

Я пытаюсь написать простой запрос с дополнительными параметрами фильтра

Например

const query = gql`query FilteredPeople($email: String) {
  people(email: $email) {
    fullName
    email
  }
}`;

Я продолжаю получать

"Network error: The inline argument "email" is expected as a variable but was not provided."

Это заставляет меня думать, что это на стороне сервера, но моя схема довольно проста

const RootQuery = `
    type RootQuery {
      people(email: String): [Person]
    }
`;

Глядя на спецификацию graphql, чтобы указать, является ли что-то необязательным или нет, вы используете !, Как видите, электронная почта не требуется.

Обратите внимание, что я использую клиент / сервер apollo и response-apollo. Версии на моем

server
    "graphql": "^0.7.2",
    "graphql-server-express": "^0.4.3",

client
    "apollo-client": "0.5.0",
    "graphql-tag": "0.1.15",
    "react-apollo": "0.5.16",

Я что-то пропустил? Я думал, что я это исправил, но он перестал работать, так что я думаю, нет.

2 ответа

Хотя String выглядит обнуляемым, на самом деле это так, если вы решите вообще ничего не передавать, вот так:

const query = gql`query {
  people {
    fullName
    email
  }
}`;

Однако, если вы используете pass в параметре, как вы использовали в своем вопросе, то вы должны определить эту переменную.

Надеюсь, это поможет!

После дальнейшего расследования кажется, что это ожидаемое поведение.

http://facebook.github.io/graphql/

Переменные операции должны использоваться при определении операции.

Другие вопросы по тегам