mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-04 14:40:53 +00:00
[Go] Add multiple file upload support (#16956)
* add go echo api client github workflow * add support for multi file upload in go client * update go samples
This commit is contained in:
parent
c2a4163bdb
commit
8d76ab9511
32
.github/workflows/samples-go-client-echo-api.yaml
vendored
Normal file
32
.github/workflows/samples-go-client-echo-api.yaml
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
name: Go Client (Echo API)
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- samples/client/echo_api/go/**
|
||||||
|
- .github/workflows/samples-go-client-echo-api.yaml
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Test Go client
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
sample:
|
||||||
|
# clients
|
||||||
|
- samples/client/echo_api/go
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-go@v4
|
||||||
|
with:
|
||||||
|
go-version: "stable"
|
||||||
|
- name: Setup node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
- name: Run echo server
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/wing328/http-echo-server -b openapi-generator-test-server
|
||||||
|
(cd http-echo-server && npm install && npm start &)
|
||||||
|
- run: go version
|
||||||
|
- name: Run test
|
||||||
|
working-directory: ${{ matrix.sample }}
|
||||||
|
run: go test -mod=mod -v
|
@ -255,13 +255,32 @@ func (a *{{{classname}}}Service) {{nickname}}Execute(r {{#structPrefix}}{{&class
|
|||||||
{{/headerParams}}
|
{{/headerParams}}
|
||||||
{{#formParams}}
|
{{#formParams}}
|
||||||
{{#isFile}}
|
{{#isFile}}
|
||||||
|
{{#isArray}}
|
||||||
var {{paramName}}LocalVarFormFileName string
|
var {{paramName}}LocalVarFormFileName string
|
||||||
var {{paramName}}LocalVarFileName string
|
var {{paramName}}LocalVarFileName string
|
||||||
var {{paramName}}LocalVarFileBytes []byte
|
var {{paramName}}LocalVarFileBytes []byte
|
||||||
|
|
||||||
{{paramName}}LocalVarFormFileName = "{{baseName}}"
|
{{paramName}}LocalVarFormFileName = "{{{baseName}}}"
|
||||||
|
{{paramName}}LocalVarFile := r.{{paramName}}
|
||||||
|
|
||||||
|
if {{paramName}}LocalVarFile != nil {
|
||||||
|
// loop through the array to prepare multiple files upload
|
||||||
|
for _, {{paramName}}LocalVarFileValue := range {{paramName}}LocalVarFile {
|
||||||
|
fbs, _ := io.ReadAll({{paramName}}LocalVarFileValue)
|
||||||
|
|
||||||
|
{{paramName}}LocalVarFileBytes = fbs
|
||||||
|
{{paramName}}LocalVarFileName = {{paramName}}LocalVarFileValue.Name()
|
||||||
|
{{paramName}}LocalVarFileValue.Close()
|
||||||
|
formFiles = append(formFiles, formFile{fileBytes: {{paramName}}LocalVarFileBytes, fileName: {{paramName}}LocalVarFileName, formFileName: {{paramName}}LocalVarFormFileName})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{{/isArray}}
|
||||||
|
{{^isArray}}
|
||||||
|
var {{paramName}}LocalVarFormFileName string
|
||||||
|
var {{paramName}}LocalVarFileName string
|
||||||
|
var {{paramName}}LocalVarFileBytes []byte
|
||||||
|
|
||||||
|
{{paramName}}LocalVarFormFileName = "{{{baseName}}}"
|
||||||
{{paramName}}LocalVarFile := r.{{paramName}}
|
{{paramName}}LocalVarFile := r.{{paramName}}
|
||||||
|
|
||||||
if {{paramName}}LocalVarFile != nil {
|
if {{paramName}}LocalVarFile != nil {
|
||||||
@ -272,6 +291,7 @@ func (a *{{{classname}}}Service) {{nickname}}Execute(r {{#structPrefix}}{{&class
|
|||||||
{{paramName}}LocalVarFile.Close()
|
{{paramName}}LocalVarFile.Close()
|
||||||
formFiles = append(formFiles, formFile{fileBytes: {{paramName}}LocalVarFileBytes, fileName: {{paramName}}LocalVarFileName, formFileName: {{paramName}}LocalVarFormFileName})
|
formFiles = append(formFiles, formFile{fileBytes: {{paramName}}LocalVarFileBytes, fileName: {{paramName}}LocalVarFileName, formFileName: {{paramName}}LocalVarFormFileName})
|
||||||
}
|
}
|
||||||
|
{{/isArray}}
|
||||||
{{/isFile}}
|
{{/isFile}}
|
||||||
{{^isFile}}
|
{{^isFile}}
|
||||||
{{#required}}
|
{{#required}}
|
||||||
|
@ -306,17 +306,18 @@ func (a *BodyAPIService) TestBodyMultipartFormdataArrayOfBinaryExecute(r ApiTest
|
|||||||
var filesLocalVarFileBytes []byte
|
var filesLocalVarFileBytes []byte
|
||||||
|
|
||||||
filesLocalVarFormFileName = "files"
|
filesLocalVarFormFileName = "files"
|
||||||
|
|
||||||
|
|
||||||
filesLocalVarFile := r.files
|
filesLocalVarFile := r.files
|
||||||
|
|
||||||
if filesLocalVarFile != nil {
|
if filesLocalVarFile != nil {
|
||||||
fbs, _ := io.ReadAll(filesLocalVarFile)
|
// loop through the array to prepare multiple files upload
|
||||||
|
for _, filesLocalVarFileValue := range filesLocalVarFile {
|
||||||
|
fbs, _ := io.ReadAll(filesLocalVarFileValue)
|
||||||
|
|
||||||
filesLocalVarFileBytes = fbs
|
filesLocalVarFileBytes = fbs
|
||||||
filesLocalVarFileName = filesLocalVarFile.Name()
|
filesLocalVarFileName = filesLocalVarFileValue.Name()
|
||||||
filesLocalVarFile.Close()
|
filesLocalVarFileValue.Close()
|
||||||
formFiles = append(formFiles, formFile{fileBytes: filesLocalVarFileBytes, fileName: filesLocalVarFileName, formFileName: filesLocalVarFormFileName})
|
formFiles = append(formFiles, formFile{fileBytes: filesLocalVarFileBytes, fileName: filesLocalVarFileName, formFileName: filesLocalVarFormFileName})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
|
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1270,8 +1270,6 @@ func (a *FakeAPIService) TestEndpointParametersExecute(r ApiTestEndpointParamete
|
|||||||
var binaryLocalVarFileBytes []byte
|
var binaryLocalVarFileBytes []byte
|
||||||
|
|
||||||
binaryLocalVarFormFileName = "binary"
|
binaryLocalVarFormFileName = "binary"
|
||||||
|
|
||||||
|
|
||||||
binaryLocalVarFile := r.binary
|
binaryLocalVarFile := r.binary
|
||||||
|
|
||||||
if binaryLocalVarFile != nil {
|
if binaryLocalVarFile != nil {
|
||||||
|
@ -976,8 +976,6 @@ func (a *PetAPIService) UploadFileExecute(r ApiUploadFileRequest) (*ApiResponse,
|
|||||||
var fileLocalVarFileBytes []byte
|
var fileLocalVarFileBytes []byte
|
||||||
|
|
||||||
fileLocalVarFormFileName = "file"
|
fileLocalVarFormFileName = "file"
|
||||||
|
|
||||||
|
|
||||||
fileLocalVarFile := r.file
|
fileLocalVarFile := r.file
|
||||||
|
|
||||||
if fileLocalVarFile != nil {
|
if fileLocalVarFile != nil {
|
||||||
@ -1114,8 +1112,6 @@ func (a *PetAPIService) UploadFileWithRequiredFileExecute(r ApiUploadFileWithReq
|
|||||||
var requiredFileLocalVarFileBytes []byte
|
var requiredFileLocalVarFileBytes []byte
|
||||||
|
|
||||||
requiredFileLocalVarFormFileName = "requiredFile"
|
requiredFileLocalVarFormFileName = "requiredFile"
|
||||||
|
|
||||||
|
|
||||||
requiredFileLocalVarFile := r.requiredFile
|
requiredFileLocalVarFile := r.requiredFile
|
||||||
|
|
||||||
if requiredFileLocalVarFile != nil {
|
if requiredFileLocalVarFile != nil {
|
||||||
|
@ -1451,8 +1451,6 @@ func (a *FakeAPIService) TestEndpointParametersExecute(r ApiTestEndpointParamete
|
|||||||
var binaryLocalVarFileBytes []byte
|
var binaryLocalVarFileBytes []byte
|
||||||
|
|
||||||
binaryLocalVarFormFileName = "binary"
|
binaryLocalVarFormFileName = "binary"
|
||||||
|
|
||||||
|
|
||||||
binaryLocalVarFile := r.binary
|
binaryLocalVarFile := r.binary
|
||||||
|
|
||||||
if binaryLocalVarFile != nil {
|
if binaryLocalVarFile != nil {
|
||||||
|
@ -999,8 +999,6 @@ func (a *PetAPIService) UploadFileExecute(r ApiUploadFileRequest) (*ApiResponse,
|
|||||||
var fileLocalVarFileBytes []byte
|
var fileLocalVarFileBytes []byte
|
||||||
|
|
||||||
fileLocalVarFormFileName = "file"
|
fileLocalVarFormFileName = "file"
|
||||||
|
|
||||||
|
|
||||||
fileLocalVarFile := r.file
|
fileLocalVarFile := r.file
|
||||||
|
|
||||||
if fileLocalVarFile != nil {
|
if fileLocalVarFile != nil {
|
||||||
@ -1139,8 +1137,6 @@ func (a *PetAPIService) UploadFileWithRequiredFileExecute(r ApiUploadFileWithReq
|
|||||||
var requiredFileLocalVarFileBytes []byte
|
var requiredFileLocalVarFileBytes []byte
|
||||||
|
|
||||||
requiredFileLocalVarFormFileName = "requiredFile"
|
requiredFileLocalVarFormFileName = "requiredFile"
|
||||||
|
|
||||||
|
|
||||||
requiredFileLocalVarFile := r.requiredFile
|
requiredFileLocalVarFile := r.requiredFile
|
||||||
|
|
||||||
if requiredFileLocalVarFile != nil {
|
if requiredFileLocalVarFile != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user