I'm trying to upload a file using Swagger and Flask. I've the following configuration for swagger.
"/user/register/": {
"post": {
"tags": ["user"],
"summary": "Register a new user",
"description": "",
"operationId": "registerUser",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [{
"in": "body",
"name": "body",
"description": "User object that needs to be added.",
"required": true,
"schema": {
"$ref": "#/definitions/User"
}
},
{
"name": "file",
"in": "path",
"description": "file to upload",
"required": true,
"type": "file"
}]
}
},
I do get the option for uploading a file, but when I try to receive it at the backend,(using print request.files
) it returns me nothing.
How can I receive the file (selected at swagger level) at the backend.??
iFile = request.files.getlist('file')[0]
- This command reads the file uploaded via swagger UI.For
file
, the type should beformData
instead ofpath
. See below for an exampleref: https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/test/resources/2_0/petstore.json#L384
For
consumes
, it should bemultipart/form-data