[BUG] Failed to add required=false (#2062) (#5573)

This commit is contained in:
Andrei Chugunov
2020-05-14 16:10:12 +03:00
committed by GitHub
parent f03458dde4
commit ae2b693ccc
32 changed files with 123 additions and 89 deletions

View File

@@ -1 +1 @@
{{#isFormParam}}{{^isFile}}@ApiParam(value = "{{{description}}}"{{#required}}, required=true{{/required}}{{#allowableValues}}, allowableValues="{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{#-last}}{{/-last}}{{/values}}"{{/allowableValues}}{{^isContainer}}{{#defaultValue}}, defaultValue={{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}{{/isContainer}}) @RequestPart(value="{{baseName}}"{{#required}}, required=true{{/required}}{{^required}}, required=false{{/required}}) {{{dataType}}} {{paramName}}{{/isFile}}{{#isFile}}@ApiParam(value = "{{{description}}}") {{#useBeanValidation}}@Valid{{/useBeanValidation}} @RequestPart(value = "{{baseName}}") {{#isListContainer}}List<{{/isListContainer}}MultipartFile{{#isListContainer}}>{{/isListContainer}} {{baseName}}{{/isFile}}{{/isFormParam}}
{{#isFormParam}}{{^isFile}}@ApiParam(value = "{{{description}}}"{{#required}}, required=true{{/required}}{{#allowableValues}}, allowableValues="{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{#-last}}{{/-last}}{{/values}}"{{/allowableValues}}{{^isContainer}}{{#defaultValue}}, defaultValue={{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}{{/isContainer}}) {{#useBeanValidation}}@Valid{{/useBeanValidation}} @RequestPart(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}) {{{dataType}}} {{paramName}}{{/isFile}}{{#isFile}}@ApiParam(value = "{{{description}}}") {{#useBeanValidation}}@Valid{{/useBeanValidation}} @RequestPart(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}) {{#isListContainer}}List<{{/isListContainer}}MultipartFile{{#isListContainer}}>{{/isListContainer}} {{baseName}}{{/isFile}}{{/isFormParam}}

View File

@@ -282,7 +282,7 @@ public class SpringCodegenTest {
final String multipartArrayApi = files.get("/src/main/java/org/openapitools/api/MultipartArrayApi.java");
Assert.assertTrue(multipartArrayApi.contains("List<MultipartFile> files"));
Assert.assertTrue(multipartArrayApi.contains("@ApiParam(value = \"Many files\")"));
Assert.assertTrue(multipartArrayApi.contains("@RequestPart(value = \"files\")"));
Assert.assertTrue(multipartArrayApi.contains("@RequestPart(value = \"files\", required = false)"));
// Check that the delegate handles the single file
final String multipartSingleApiDelegate = files.get("/src/main/java/org/openapitools/api/MultipartSingleApiDelegate.java");
@@ -292,7 +292,14 @@ public class SpringCodegenTest {
final String multipartSingleApi = files.get("/src/main/java/org/openapitools/api/MultipartSingleApi.java");
Assert.assertTrue(multipartSingleApi.contains("MultipartFile file"));
Assert.assertTrue(multipartSingleApi.contains("@ApiParam(value = \"One file\")"));
Assert.assertTrue(multipartSingleApi.contains("@RequestPart(value = \"file\")"));
Assert.assertTrue(multipartSingleApi.contains("@RequestPart(value = \"file\", required = false)"));
// Check that api validates mixed multipart request
final String multipartMixedApi = files.get("/src/main/java/org/openapitools/api/MultipartMixedApi.java");
Assert.assertTrue(multipartMixedApi.contains("MultipartFile file"));
Assert.assertTrue(multipartMixedApi.contains("@RequestPart(value = \"file\", required = true)"));
System.out.println(multipartMixedApi);
Assert.assertTrue(multipartMixedApi.contains("@Valid @RequestPart(value = \"marker\", required = false)"));
}
@Test

View File

@@ -40,6 +40,33 @@ paths:
description: "One file"
type: string
format: binary
responses:
'204':
description: Successful operation
/multipart-mixed:
post:
tags:
- multipart
description: Mixed MultipartFile test
operationId: multipartMixed
requestBody:
content:
multipart/form-data:
schema:
type: object
required:
- file
properties:
marker:
description: "additional object"
type: object
properties:
name:
type: string
file:
description: "a file"
type: string
format: binary
responses:
'204':
description: Successful operation