Created by: icubbon
The Go client will iterate over the files for a multipart/form-data request and add each file to a slice of formFiles.
Added a private struct formFile that contains the already defined values of a formFile. A Request now creates an empty slice of formFiles in which files are appended into.
The prepareRequest function will now iterate over the slice of formFiles to add each one to the request.
Addresses https://github.com/OpenAPITools/openapi-generator/issues/8322
An example snippet of a schema that has the problem being addressed, note the second file in the multipart/form-data request body:
"/pet/{petId}/uploadImage":
post:
tags:
- pet
summary: uploads an image
description: ""
operationId: uploadFile
parameters:
- name: petId
in: path
description: ID of pet to update
required: true
schema:
type: integer
format: int64
responses:
"200":
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ApiResponse"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
additionalMetadata:
description: Additional data to pass to server
type: string
file:
description: file to upload
type: string
format: binary
secondFile:
description: another file to upload
type: string
format: binary
@antihax @grokify @kemokemo @jirikuncar @ph4r5h4d
PR checklist
-
Read the contribution guidelines. -
Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community. -
Run the following to build the project and update samples: Commit all changed files. This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master. These must match the expectations made by your contribution. You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example./mvnw clean package ./bin/generate-samples.sh ./bin/utils/export_docs_generators.sh./bin/generate-samples.sh bin/configs/java*. For Windows users, please run the script in Git BASH. -
File the PR against the correct branch: master(5.3.0),6.0.x -
If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.