Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Golang][client] fix formData file parameter name use #506

Merged

Conversation

grokify
Copy link
Member

@grokify grokify commented Jul 8, 2018

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: master, 3.1.x, 4.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

@antihax
@bvwells

Description of the PR

When a parameter in formData with type file is sent, the parameter name is hardcoded to file but it should be set to the parameter name because it needs to be used in the MIME multipart/form-data Content-Disposition header. As an example, if an API requires the following and the parameter name is set to attachment in the spec, APIClient.prepareRequest will still set name to be hardcoded to file.

Content-Disposition: form-data; name="attachment"; filename="myfile.pdf"

This issue is described in more detail here:

  1. [Golang][client] Post file limitations - MIME part name, multiple files, etc. #505
  2. SendFaxMessage does not attach file. grokify/go-ringcentral-client#16

localVarFormFileName was select as the variable name to hold this info because it aligns with localVarFormParams and the name is specifically associated with the file, e.g. localVarFileName and localVarFileBytes. It is also more inline with Go's FormFile in CreateFormFile.

This PR solves the immediate issue of not using the parameter name. A future enhancement will be to support an array of files per parameter and multiple file parameters.

@@ -573,7 +571,6 @@ paths:
parameters:
- name: enum_header_string_array
in: header
explode: true
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like there's still an issue with the online converter. I'll open an issue tomorrow.

Copy link
Member

@wing328 wing328 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fix looks good to me

@wing328 wing328 merged commit 19fd48e into OpenAPITools:master Jul 12, 2018
@wing328 wing328 added this to the 3.1.1 milestone Jul 12, 2018
A-Joshi pushed a commit to ihsmarkitoss/openapi-generator that referenced this pull request Feb 27, 2019
…ls#506)

* support form-data file MIME `name` parameter

* update test spec and Go client for form-data file name

* update samples for ensure-up-to-date

* update mustache template

* update samples for Go client

* improve assignment location

* update samples
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants