Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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}}
Original file line number Diff line number Diff line change
Expand Up @@ -5316,6 +5316,29 @@ public void shouldGenerateSingleDeprecatedAnnotation() {
.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();
Expand Down
Original file line number Diff line number Diff line change
@@ -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"
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,14 @@ public interface DefaultApi {
value = DefaultApi.PATH_GET
)
ResponseEntity<Void> get(
@NotNull @ApiParam(value = "A date path parameter", required = true, defaultValue = "1972-01-01") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date,
@NotNull @ApiParam(value = "A date-time query parameter", required = true, defaultValue = "1973-12-19T03:39:57-08:00") @Valid @RequestParam(value = "dateTime", required = true, defaultValue = "1973-12-19T03:39:57-08:00") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime dateTime,
@NotNull @ApiParam(value = "A date header parameter", required = true, defaultValue = "1974-01-01") @RequestHeader(value = "X-Order-Date", required = true, defaultValue = "1974-01-01") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate xOrderDate,
@ApiParam(value = "A date cookie parameter", defaultValue = "1975-01-01") @CookieValue(name = "loginDate", required = false, defaultValue = "1975-01-01") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate loginDate
@NotNull @ApiParam(value = "A date path parameter", required = true, defaultValue = "1972-01-01") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date
,
@NotNull @ApiParam(value = "A date-time query parameter", required = true, defaultValue = "1973-12-19T03:39:57-08:00") @Valid @RequestParam(value = "dateTime", required = true, defaultValue = "1973-12-19T03:39:57-08:00") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime dateTime
,
@NotNull @ApiParam(value = "A date header parameter", required = true, defaultValue = "1974-01-01") @RequestHeader(value = "X-Order-Date", required = true, defaultValue = "1974-01-01") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate xOrderDate
,

@ApiParam(value = "A date cookie parameter", defaultValue = "1975-01-01") @CookieValue(name = "loginDate", required = false, defaultValue = "1975-01-01") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate loginDate
);


Expand All @@ -80,8 +84,10 @@ ResponseEntity<Void> get(
consumes = "application/x-www-form-urlencoded"
)
ResponseEntity<Void> updatePetWithForm(
@NotNull @ApiParam(value = "A date path parameter", required = true, defaultValue = "1970-01-01") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date,
@ApiParam(value = "Updated last visit timestamp", defaultValue = "1971-12-19T03:39:57-08:00") @Valid @RequestParam(value = "visitDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime visitDate
@NotNull @ApiParam(value = "A date path parameter", required = true, defaultValue = "1970-01-01") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date
,
@ApiParam(value = "Updated last visit timestamp", defaultValue = "1971-12-19T03:39:57-08:00") @Valid @RequestParam(value = "visitDate", required = false, defaultValue = "1971-12-19T03:39:57-08:00") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime visitDate

);

}
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ public interface PetApi {
)
ResponseEntity<Void> addPet(
@Parameter(name = "Pet", description = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody Pet pet

);


Expand Down Expand Up @@ -93,8 +94,10 @@ ResponseEntity<Void> addPet(
value = PetApi.PATH_DELETE_PET
)
ResponseEntity<Void> deletePet(
@NotNull @Parameter(name = "petId", description = "Pet id to delete", required = true, in = ParameterIn.PATH) @PathVariable("petId") Long petId,
@NotNull @Parameter(name = "petId", description = "Pet id to delete", required = true, in = ParameterIn.PATH) @PathVariable("petId") Long petId
,
@Parameter(name = "api_key", description = "", in = ParameterIn.HEADER) @RequestHeader(value = "api_key", required = false) @Nullable String apiKey

);


Expand Down Expand Up @@ -130,6 +133,7 @@ ResponseEntity<Void> deletePet(
)
ResponseEntity<List<Pet>> findPetsByStatus(
@NotNull @Parameter(name = "status", description = "Status values that need to be considered for filter", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "status", required = true) List<String> status

);


Expand Down Expand Up @@ -168,6 +172,7 @@ ResponseEntity<List<Pet>> findPetsByStatus(
)
ResponseEntity<List<Pet>> findPetsByTags(
@NotNull @Parameter(name = "tags", description = "Tags to filter by", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "tags", required = true) List<String> tags

);


Expand Down Expand Up @@ -205,6 +210,7 @@ ResponseEntity<List<Pet>> findPetsByTags(
)
ResponseEntity<Pet> getPetById(
@NotNull @Parameter(name = "petId", deprecated = true, description = "ID of pet to return", required = true, in = ParameterIn.PATH) @PathVariable("petId") @Deprecated Long petId

);


Expand Down Expand Up @@ -239,6 +245,7 @@ ResponseEntity<Pet> getPetById(
)
ResponseEntity<Void> updatePet(
@Parameter(name = "Pet", description = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody Pet pet

);


Expand Down Expand Up @@ -270,9 +277,12 @@ ResponseEntity<Void> updatePet(
consumes = "application/x-www-form-urlencoded"
)
ResponseEntity<Void> updatePetWithForm(
@NotNull @Parameter(name = "petId", description = "ID of pet that needs to be updated", required = true, in = ParameterIn.PATH) @PathVariable("petId") Long petId,
@Parameter(name = "name", description = "Updated name of the pet") @Valid @RequestParam(value = "name", required = false) String name,
@NotNull @Parameter(name = "petId", description = "ID of pet that needs to be updated", required = true, in = ParameterIn.PATH) @PathVariable("petId") Long petId
,
@Parameter(name = "name", description = "Updated name of the pet") @Valid @RequestParam(value = "name", required = false) String name
,
@Parameter(name = "status", description = "Updated status of the pet") @Valid @RequestParam(value = "status", required = false) String status

);


Expand Down Expand Up @@ -307,9 +317,12 @@ ResponseEntity<Void> updatePetWithForm(
consumes = "multipart/form-data"
)
ResponseEntity<ModelApiResponse> uploadFile(
@NotNull @Parameter(name = "petId", description = "ID of pet to update", required = true, in = ParameterIn.PATH) @PathVariable("petId") Long petId,
@Parameter(name = "additionalMetadata", description = "Additional data to pass to server") @Valid @RequestParam(value = "additionalMetadata", required = false) String additionalMetadata,
@NotNull @Parameter(name = "petId", description = "ID of pet to update", required = true, in = ParameterIn.PATH) @PathVariable("petId") Long petId
,
@Parameter(name = "additionalMetadata", description = "Additional data to pass to server") @Valid @RequestParam(value = "additionalMetadata", required = false) String additionalMetadata
,
@Parameter(name = "file", description = "file to upload") @RequestPart(value = "file", required = false) MultipartFile file

);

}
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ public interface StoreApi {
)
ResponseEntity<Void> deleteOrder(
@NotNull @Parameter(name = "orderId", description = "ID of the order that needs to be deleted", required = true, in = ParameterIn.PATH) @PathVariable("orderId") String orderId

);


Expand Down Expand Up @@ -126,6 +127,7 @@ ResponseEntity<Map<String, Integer>> getInventory(
)
ResponseEntity<Order> getOrderById(
@NotNull @Min(value = 1L) @Max(value = 5L) @Parameter(name = "orderId", description = "ID of pet that needs to be fetched", required = true, in = ParameterIn.PATH) @PathVariable("orderId") Long orderId

);


Expand Down Expand Up @@ -159,6 +161,7 @@ ResponseEntity<Order> getOrderById(
)
ResponseEntity<Order> placeOrder(
@Parameter(name = "Order", description = "order placed for purchasing the pet", required = true) @Valid @RequestBody Order order

);

}
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ public interface UserApi {
)
ResponseEntity<Void> createUser(
@Parameter(name = "User", description = "Created user object", required = true) @Valid @RequestBody User user

);


Expand Down Expand Up @@ -93,6 +94,7 @@ ResponseEntity<Void> createUser(
)
ResponseEntity<Void> createUsersWithArrayInput(
@Parameter(name = "User", description = "List of user object", required = true) @Valid @RequestBody List<@Valid User> user

);


Expand Down Expand Up @@ -123,6 +125,7 @@ ResponseEntity<Void> createUsersWithArrayInput(
)
ResponseEntity<Void> createUsersWithListInput(
@Parameter(name = "User", description = "List of user object", required = true) @Valid @RequestBody List<@Valid User> user

);


Expand Down Expand Up @@ -154,6 +157,7 @@ ResponseEntity<Void> createUsersWithListInput(
)
ResponseEntity<Void> deleteUser(
@NotNull @Parameter(name = "username", description = "The name that needs to be deleted", required = true, in = ParameterIn.PATH) @PathVariable("username") String username

);


Expand Down Expand Up @@ -188,6 +192,7 @@ ResponseEntity<Void> deleteUser(
)
ResponseEntity<User> getUserByName(
@NotNull @Parameter(name = "username", description = "The name that needs to be fetched. Use user1 for testing.", required = true, in = ParameterIn.PATH) @PathVariable("username") String username

);


Expand Down Expand Up @@ -220,8 +225,10 @@ ResponseEntity<User> getUserByName(
produces = { "application/json", "application/xml" }
)
ResponseEntity<String> loginUser(
@NotNull @Pattern(regexp = "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$") @Parameter(name = "username", description = "The user name for login", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "username", required = true) String username,
@NotNull @Pattern(regexp = "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$") @Parameter(name = "username", description = "The user name for login", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "username", required = true) String username
,
@NotNull @Parameter(name = "password", deprecated = true, description = "The password for login in clear text", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "password", required = true) @Deprecated String password

);


Expand Down Expand Up @@ -282,8 +289,10 @@ ResponseEntity<Void> logoutUser(
consumes = "application/json"
)
ResponseEntity<Void> updateUser(
@NotNull @Parameter(name = "username", description = "name that need to be deleted", required = true, in = ParameterIn.PATH) @PathVariable("username") String username,
@NotNull @Parameter(name = "username", description = "name that need to be deleted", required = true, in = ParameterIn.PATH) @PathVariable("username") String username
,
@Parameter(name = "User", description = "Updated user object", required = true) @Valid @RequestBody User user

);

}
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ public interface PetApi {
)
ResponseEntity<Pet> addPet(
@ApiParam(value = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody Pet pet

);


Expand Down Expand Up @@ -92,8 +93,10 @@ ResponseEntity<Pet> addPet(
value = PetApi.PATH_DELETE_PET
)
ResponseEntity<Void> deletePet(
@NotNull @ApiParam(value = "Pet id to delete", required = true) @PathVariable("petId") Long petId,
@NotNull @ApiParam(value = "Pet id to delete", required = true) @PathVariable("petId") Long petId
,
@ApiParam(value = "") @RequestHeader(value = "api_key", required = false) @Nullable String apiKey

);


Expand Down Expand Up @@ -130,6 +133,7 @@ ResponseEntity<Void> deletePet(
)
ResponseEntity<List<Pet>> findPetsByStatus(
@NotNull @ApiParam(value = "Status values that need to be considered for filter", required = true, allowableValues = "available, pending, sold") @Valid @RequestParam(value = "status", required = true) @Deprecated List<String> status

);


Expand Down Expand Up @@ -168,6 +172,7 @@ ResponseEntity<List<Pet>> findPetsByStatus(
)
ResponseEntity<List<Pet>> findPetsByTags(
@NotNull @ApiParam(value = "Tags to filter by", required = true) @Valid @RequestParam(value = "tags", required = true) List<String> tags

);


Expand Down Expand Up @@ -203,6 +208,7 @@ ResponseEntity<List<Pet>> findPetsByTags(
)
ResponseEntity<Pet> getPetById(
@NotNull @ApiParam(value = "ID of pet to return", required = true) @PathVariable("petId") Long petId

);


Expand Down Expand Up @@ -246,6 +252,7 @@ ResponseEntity<Pet> getPetById(
)
ResponseEntity<Pet> updatePet(
@ApiParam(value = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody Pet pet

);


Expand Down Expand Up @@ -280,9 +287,12 @@ ResponseEntity<Pet> updatePet(
consumes = "application/x-www-form-urlencoded"
)
ResponseEntity<Void> updatePetWithForm(
@NotNull @ApiParam(value = "ID of pet that needs to be updated", required = true) @PathVariable("petId") Long petId,
@ApiParam(value = "Updated name of the pet") @Valid @RequestParam(value = "name", required = false) String name,
@NotNull @ApiParam(value = "ID of pet that needs to be updated", required = true) @PathVariable("petId") Long petId
,
@ApiParam(value = "Updated name of the pet") @Valid @RequestParam(value = "name", required = false) String name
,
@ApiParam(value = "Updated status of the pet") @Valid @RequestParam(value = "status", required = false) String status

);


Expand Down Expand Up @@ -319,9 +329,12 @@ ResponseEntity<Void> updatePetWithForm(
consumes = "multipart/form-data"
)
ResponseEntity<ModelApiResponse> uploadFile(
@NotNull @ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") Long petId,
@ApiParam(value = "Additional data to pass to server") @Valid @RequestParam(value = "additionalMetadata", required = false) String additionalMetadata,
@NotNull @ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") Long petId
,
@ApiParam(value = "Additional data to pass to server") @Valid @RequestParam(value = "additionalMetadata", required = false) String additionalMetadata
,
@ApiParam(value = "file to upload") @RequestPart(value = "file", required = false) MultipartFile file

);

}
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public interface StoreApi {
)
ResponseEntity<Void> deleteOrder(
@NotNull @ApiParam(value = "ID of the order that needs to be deleted", required = true) @PathVariable("orderId") String orderId

);


Expand Down Expand Up @@ -113,6 +114,7 @@ ResponseEntity<Map<String, Integer>> getInventory(
)
ResponseEntity<Order> getOrderById(
@NotNull @Min(value = 1L) @Max(value = 5L) @ApiParam(value = "ID of pet that needs to be fetched", required = true) @PathVariable("orderId") Long orderId

);


Expand Down Expand Up @@ -144,6 +146,7 @@ ResponseEntity<Order> getOrderById(
)
ResponseEntity<Order> placeOrder(
@ApiParam(value = "order placed for purchasing the pet", required = true) @Valid @RequestBody Order order

);

}
Loading
Loading