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/
Переменные операции должны использоваться при определении операции.