Это ваш Mutation
тип:
type Mutation {
uploadFile(file: Upload!): Boolean!
}
Ваша схема определяет файл uploadFile
как принимающий единственный аргумент file
типа Upload!
.!
означает, что аргумент не равен NULL, то есть NULL не может быть передан в качестве значения.
Это ваш запрос:
mutation UploadFileMutation($file: Upload) {
uploadFile(file: $file)
}
Вы передаете переменную,$ file, для аргумента file
, но вы сказали GraphQL, что эта переменная имеет тип Upload
, а не Upload!
.Другими словами, вы говорите, что $file
может быть нулевым.Согласно спецификации, это не проходит проверку типа.
Из spec :
Использование переменных должно быть совместимо с аргументами, которым они передаются.Сбои валидации возникают, когда переменные используются в контексте типов, которые являются полными несоответствиями, или если тип переменной в переменной передается в ненулевой тип аргумента.
Другими словами, еслиполе Upload!
, вы можете использовать только переменные, которые также определены как Upload!
.Если поле имеет тип Upload
, вы можете передать либо Upload!
, либо Upload
.
TLDR; Измените запрос на:
mutation UploadFileMutation($file: Upload!) {
uploadFile(file: $file)
}
или, если файл может быть нулевым, обновите тип поля так, чтобы он мог обнуляться.