Skip to content

[Spring] fix datatype for non-multipart file request body #2271

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

Merged

Conversation

quackes
Copy link
Contributor

@quackes quackes commented Feb 28, 2019

fixes #2191

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, ./bin/openapi3/{LANG}-petstore.sh, ./bin/security/{LANG}-petstore.sh and ./bin/openapi3/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.4.x, 4.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

The distinction between the following cases was leading to compile errors in the generated code

adressing request body as single file:

requestBody:
  content:
    application/octet-stream:
      schema:
        type: string
        format: binary

and files in multipart/form-data requests:

requestBody:
  content: 
    multipart/form-data:
      schema:
        type: object
        properties:
          id:  
            type: string
            format: uuid
          profileImage:  
            type: string
            format: binary

(as described here

I found out, that internally multipart parameters are handled in formParams, where the "raw" body is handled in bodyParams.
In the template for formParams is a special case for files in multipart, that was also used for rendering the delegate methods signature.
But request bodies as single file were ignored in that case.

I added the distinction in the template part for the delegate methods signature.

I invoked the sample generation scripts, they did not change any files.

@bbdouglas (2017/07) @JFCote (2017/08) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01)

@auto-labeler
Copy link

auto-labeler bot commented Feb 28, 2019

👍 Thanks for opening this issue!
🏷 I have applied any labels matching special text in your issue.

The team will review the labels and make any necessary changes.

@quackes quackes force-pushed the java-fix-binary-body-method-signature branch 4 times, most recently from 8f1e6a3 to 0a86bad Compare February 28, 2019 22:31
@quackes quackes force-pushed the java-fix-binary-body-method-signature branch from 0a86bad to b3fabd7 Compare February 28, 2019 22:37
@wing328 wing328 added this to the 4.0.0 milestone Mar 7, 2019
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.

Tested locally and didn't notice any issue.

@wing328 wing328 changed the title [java]: fix datatype for non-multipart file request body [Spring] fix datatype for non-multipart file request body Mar 7, 2019
@wing328 wing328 merged commit 9348636 into OpenAPITools:master Mar 7, 2019
jimschubert added a commit to jimschubert/openapi-generator that referenced this pull request Mar 9, 2019
* master: (758 commits)
  Add support for free form requests (OpenAPITools#2288)
  [typescript-rxjs] drop unneeded function wrapping  (OpenAPITools#2332)
  [typescript-fetch] Guard array mapping against undefined on optional array model properties (OpenAPITools#2324)
  Fix regex in Python server model code (OpenAPITools#2314)
  Add .travis.yml and Gemfile.lock to ruby security test folder (OpenAPITools#2330)
  Add a link to CSDN article (OpenAPITools#2331)
  [Maven] fix Spaces in Windows user path breaks build on test goal (OpenAPITools#2318)
  [PHP] fix bad links in Model docs (OpenAPITools#2316)
  [java]: fix datatype for non-multipart file request body (OpenAPITools#2271)
  Removed JFCote from core team (OpenAPITools#2315)
  [R sample] fix CircleCI error of outdated sample (OpenAPITools#2313)
  [Java] Bean Validation for decimalmin/max incorrect when exclusive set (OpenAPITools#2115)
  Java Spring : fix defaultValue annotation double quoted in api operation (OpenAPITools#2267)
  Java RESTEASY : fix defaultValue annotation double quoted in api operation (OpenAPITools#2268)
  [PHP] Username checks OpenAPITools#1408 (OpenAPITools#1892)
  [typescript-fetch] remove namespaces in enums (OpenAPITools#2123)
  [java-server-msf4j] fix and upgrade (OpenAPITools#2303)
  fix test script path in CONTRIBUTING.md (OpenAPITools#2290)
  Dart queryargs (OpenAPITools#2250)
  add Blueplanet language (OpenAPITools#2184)
  ...
@anuhyapolisetti
Copy link

We still see this issue for the generated Api and ApiDelegate files, they have different request body types (Resource/MultipartFile), which is resulting in compilation errors. opened a new issue at #3905

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.

[BUG][Java][Server:Spring-boot] File upload spec (application/octet-stream) generates MultiPartFile Delegate
3 participants