Я использую Графен на стороне сервера с кодом, аналогичным коду из документации :
class UploadFile(graphene.ClientIDMutation):
class Input:
pass
# nothing needed for uploading file
# your return fields
success = graphene.String()
@classmethod
def mutate_and_get_payload(cls, root, info, **input):
# When using it in Django, context will be the request
files = info.context.FILES
# Or, if used in Flask, context will be the flask global request
# files = context.files
# do something with files
return UploadFile(success=True)
Это все понятно, но как должен выглядеть запрос?
Я видел людей, предлагающих multipart / form-data, но AFAIK, который требует дополнительного слоя для анализа многочастного запроса, так что это, вероятно, не то, что мне нужно ... или это так? :
curl -X "POST" "http://127.0.0.1:5001/graphql" \
-H 'Content-Type: multipart/form-data; boundary=----GraphQLFileUpload' \
-F "operations={\"query\":\"mutation ($files: [Upload!]!) {uploadFile(selfie: $file) {status}}\",\"variables\":{}}" \
-F "map={\"x\":[\"variables.files.x\"]}" \
-F "x=@/tmp/dummy.jpg "