Допустим, на моем сервере GraphQl есть запрос, определенный следующим образом.
query getUser(name: String!)
То я делаю такой запрос
query getUser(name: String) {
getUser(name: $name)
...
Я получаю такую ошибку
Тип переменной «String» не соответствует ожидаемому типу «String!
Почему он пытается сопоставить это вместо того, чтобы проверить, было ли уже передано значение? На мой взгляд, это не нужно и заставляет клиентское приложение меняться по глупым причинам. Может быть, я что-то упускаю здесь.
1 ответ
!
указывает, что тип не допускает значения NULL. Аргумент, не допускающий значения NULL, не может быть опущен или ему может быть передано значение NULL. Если аргументу передается переменная, тип этой переменной также не должен принимать значение NULL. Если бы тип переменной допускал значение NULL, это означало бы, что null
будет допустимым значением для переменной, но null
не является допустимым значением для аргумента.
С другой стороны, аргумент, тип которого nullable, может принимать переменные, которые могут либо nullable, либо не nullable, потому что нет несовместимости в диапазонах возможных значений.
Все это описано в разделе «Проверка» спецификации.
Похожие вопросы
Новые вопросы
graphql
GraphQL - это технология API, разработанная для описания сложных вложенных зависимостей данных современных веб-приложений. Часто считается альтернативой SOAP или REST