swagger-axios-codegen
swagger-axios-codegen copied to clipboard
Issue with file uploads
The JSON Swagger file looks like it should work according the the spec and I dug down into the code and I think the issue is in mapFormDataToV2
(or one level above).
Relevant parts of my spec:
"/photos/fromUpload": {
"post": {
"operationId": "createFromUpload",
"summary": "",
"parameters": [],
"requestBody": {
"required": true,
"description": "Upload File",
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/FileUploadDto"
}
}
}
},
"responses": {
"201": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhotoEntity"
}
}
}
}
},
"tags": [
"photos"
]
}
},
......
"FileUploadDto": {
"type": "object",
"properties": {
"file": {
"type": "string",
"format": "binary"
}
},
"required": [
"file"
]
},
From debugging the code I see that right being passed into mapFormDataToV2
my multiDataProperties
is:
{ schema: { '$ref': '#/components/schemas/FileUploadDto' } }
but inside mapFormDataToV2
it doesn't "expand" the $ref
like you do in getResponseType.ts
. I tried expanding the FileUploadDto
inline in the code and it correctly generated the axios code.
I feel like the fix is to either copy/paste some/all of the logic from getResponseType.ts
into mapFormDataToV2
or abstract the logic away into another function they both use. Thoughts?
does not support uploading files by reference dto now.
@Manweill Would you accept a PR that made it work with reference DTO's?
@joshstrange Welcome.