Skip to content

Commit 044bd9c

Browse files
committed
Merge branch 'bugfix/fix-formparams-defaultvalue' of https://github.com/JoseLora/openapi-generator into JoseLora-bugfix/fix-formparams-defaultvalue
2 parents 3d4f29e + 3cf4994 commit 044bd9c

3 files changed

Lines changed: 66 additions & 1 deletion

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{#isFormParam}}{{^isFile}}{{>paramDoc}}{{#useBeanValidation}} {{>beanValidationBodyParams}}@Valid{{/useBeanValidation}} {{#isModel}}@RequestPart{{/isModel}}{{^isModel}}{{#isArray}}@RequestPart{{/isArray}}{{^isArray}}{{#reactive}}@RequestPart{{/reactive}}{{^reactive}}@RequestParam{{/reactive}}{{/isArray}}{{/isModel}}(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}){{>dateTimeParam}} {{^required}}{{#useOptional}}Optional<{{/useOptional}}{{/required}}{{{dataType}}}{{^required}}{{#useOptional}}>{{/useOptional}}{{/required}} {{paramName}}{{/isFile}}{{#isFile}}{{>paramDoc}} @RequestPart(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}) {{#reactive}}{{#isArray}}Flux<{{/isArray}}Part{{#isArray}}>{{/isArray}}{{/reactive}}{{^reactive}}{{#isArray}}List<{{/isArray}}MultipartFile{{#isArray}}>{{/isArray}}{{/reactive}} {{paramName}}{{/isFile}}{{/isFormParam}}
1+
{{#isFormParam}}{{^isFile}}{{>paramDoc}}{{#useBeanValidation}} {{>beanValidationBodyParams}}@Valid{{/useBeanValidation}} {{#isModel}}@RequestPart{{/isModel}}{{^isModel}}{{#isArray}}@RequestPart{{/isArray}}{{^isArray}}{{#reactive}}@RequestPart{{/reactive}}{{^reactive}}@RequestParam{{/reactive}}{{/isArray}}{{/isModel}}(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}){{>dateTimeParam}} {{^required}}{{#useOptional}}Optional<{{/useOptional}}{{/required}}{{{dataType}}}{{^required}}{{#useOptional}}>{{/useOptional}}{{/required}} {{paramName}}{{/isFile}}{{#isFile}}{{>paramDoc}} @RequestPart(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}) {{#reactive}}{{#isArray}}Flux<{{/isArray}}Part{{#isArray}}>{{/isArray}}{{/reactive}}{{^reactive}}{{#isArray}}List<{{/isArray}}MultipartFile{{#isArray}}>{{/isArray}}{{/reactive}} {{paramName}}{{/isFile}}{{/isFormParam}}

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5316,6 +5316,29 @@ public void shouldGenerateSingleDeprecatedAnnotation() {
53165316
.doesNotHaveAnnotation("Deprecated");
53175317
}
53185318

5319+
@Test
5320+
public void testRequestBodyFormParamsDefaultValue() {
5321+
final var tempDir = TestUtils.newTempFolder();
5322+
final CodegenConfigurator configurator = new CodegenConfigurator()
5323+
.setInputSpec("src/test/resources/3_0/spring/formParams_defaultValue.yaml")
5324+
.setGeneratorName("spring")
5325+
.setOutputDir(tempDir.toString());
5326+
5327+
new DefaultGenerator().opts(configurator.toClientOptInput()).generate();
5328+
5329+
JavaFileAssert.assertThat(tempDir.resolve("src/main/java/org/openapitools/api/SomeApi.java"))
5330+
.assertMethod("someDummyEndpoint", "String", "String")
5331+
.assertParameter("productId")
5332+
.assertParameterAnnotations()
5333+
.containsWithNameAndAttributes("RequestParam",
5334+
Map.of("value", "\"product_id\"", "required", "true"))
5335+
.toParameter().toMethod()
5336+
.assertParameter("locale")
5337+
.assertParameterAnnotations()
5338+
.containsWithNameAndAttributes("RequestParam",
5339+
Map.of("value", "\"locale\"", "required", "false", "defaultValue", "\"en_US\""));
5340+
}
5341+
53195342
@Test
53205343
public void shouldAnnotateNonRequiredFieldsAsNullable() throws IOException {
53215344
SpringCodegen codegen = new SpringCodegen();
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
openapi: 3.0.0
2+
info:
3+
version: "1.0.0"
4+
title: formParams-defaultValue-test
5+
paths:
6+
/some/dummy/endpoint:
7+
post:
8+
operationId: someDummyEndpoint
9+
requestBody:
10+
required: true
11+
content:
12+
application/x-www-form-urlencoded:
13+
schema:
14+
$ref: '#/components/schemas/DummyRequest'
15+
responses:
16+
200:
17+
description: Successfully created
18+
content:
19+
application/json:
20+
schema:
21+
type: object
22+
additionalProperties:
23+
$ref: '#/components/schemas/DummyResponse'
24+
components:
25+
schemas:
26+
DummyResponse:
27+
required:
28+
- status
29+
type: object
30+
properties:
31+
status:
32+
type: string
33+
DummyRequest:
34+
required:
35+
- product_id
36+
type: object
37+
properties:
38+
product_id:
39+
type: string
40+
locale:
41+
type: string
42+
default: "en_US"

0 commit comments

Comments
 (0)