Created by: quackes
fixes #2191 (closed)
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
,. Default:3.4.x
,4.0.x
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)