Я попытался добавить аргумент загрузки в конечную точку GraphQL, используя graphql-upload
s GraphQLUpload
scalar:
import { FileUpload, GraphQLUpload } from 'graphql-upload'
@Mutation(() => Image, { nullable: true })
async addImage(@Args({name: 'image', type: () => GraphQLUpload}) image: FileUpload): Promise<Image | undefined> {
// do stuff...
}
И это сработало изначально. Однако через несколько запусков он начал возвращать следующую ошибку:
"Variable \"$image\" got invalid value {}; Expected type Upload. Upload value invalid."
Пробное тестирование с клиентом Insomnia и curl:
curl localhost:8000/graphql \
-F operations='{ "query": "mutation ($image: Upload!) { addImage(image: $image) { id } }", "variables": { "image": null } }'
-F map='{ "0": ["variables.image"] }'
-F 0=@/path/to/image