mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-12-04 09:26:11 +00:00
Merge branch 'bugfix/fix-formparams-defaultvalue' of https://github.com/JoseLora/openapi-generator into JoseLora-bugfix/fix-formparams-defaultvalue
This commit is contained in:
@@ -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}}
|
||||
{{#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}}
|
||||
|
||||
@@ -5316,6 +5316,29 @@ public class SpringCodegenTest {
|
||||
.doesNotHaveAnnotation("Deprecated");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRequestBodyFormParamsDefaultValue() {
|
||||
final var tempDir = TestUtils.newTempFolder();
|
||||
final CodegenConfigurator configurator = new CodegenConfigurator()
|
||||
.setInputSpec("src/test/resources/3_0/spring/formParams_defaultValue.yaml")
|
||||
.setGeneratorName("spring")
|
||||
.setOutputDir(tempDir.toString());
|
||||
|
||||
new DefaultGenerator().opts(configurator.toClientOptInput()).generate();
|
||||
|
||||
JavaFileAssert.assertThat(tempDir.resolve("src/main/java/org/openapitools/api/SomeApi.java"))
|
||||
.assertMethod("someDummyEndpoint", "String", "String")
|
||||
.assertParameter("productId")
|
||||
.assertParameterAnnotations()
|
||||
.containsWithNameAndAttributes("RequestParam",
|
||||
Map.of("value", "\"product_id\"", "required", "true"))
|
||||
.toParameter().toMethod()
|
||||
.assertParameter("locale")
|
||||
.assertParameterAnnotations()
|
||||
.containsWithNameAndAttributes("RequestParam",
|
||||
Map.of("value", "\"locale\"", "required", "false", "defaultValue", "\"en_US\""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldAnnotateNonRequiredFieldsAsNullable() throws IOException {
|
||||
SpringCodegen codegen = new SpringCodegen();
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
version: "1.0.0"
|
||||
title: formParams-defaultValue-test
|
||||
paths:
|
||||
/some/dummy/endpoint:
|
||||
post:
|
||||
operationId: someDummyEndpoint
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
$ref: '#/components/schemas/DummyRequest'
|
||||
responses:
|
||||
200:
|
||||
description: Successfully created
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
additionalProperties:
|
||||
$ref: '#/components/schemas/DummyResponse'
|
||||
components:
|
||||
schemas:
|
||||
DummyResponse:
|
||||
required:
|
||||
- status
|
||||
type: object
|
||||
properties:
|
||||
status:
|
||||
type: string
|
||||
DummyRequest:
|
||||
required:
|
||||
- product_id
|
||||
type: object
|
||||
properties:
|
||||
product_id:
|
||||
type: string
|
||||
locale:
|
||||
type: string
|
||||
default: "en_US"
|
||||
Reference in New Issue
Block a user