contribution #6123: add spring support for SSE conform specs (#16543)

* add spring support for SSE conform specs

see https://github.com/OpenAPITools/openapi-generator/issues/6123 for the ongoing discussion

* extend generator option documentation

* applied review suggestions

* regenerated samples

* regenerated docu

* fix code style: removed tabs
This commit is contained in:
krasv
2023-09-21 11:08:24 +02:00
committed by GitHub
parent 254b359a56
commit 8f8fd85fd6
172 changed files with 1287 additions and 32 deletions

View File

@@ -65,6 +65,7 @@ public interface AnotherFakeApi {
produces = { "application/json" },
consumes = { "application/json" }
)
default ResponseEntity<Client> call123testSpecialTags(
@Parameter(name = "Client", description = "client model", required = true) @Valid @RequestBody Client client
) {

View File

@@ -74,6 +74,7 @@ public interface FakeApi {
value = "/fake/create_xml_item",
consumes = { "application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16" }
)
default ResponseEntity<Void> createXmlItem(
@Parameter(name = "XmlItem", description = "XmlItem Body", required = true) @Valid @RequestBody XmlItem xmlItem
) {
@@ -105,6 +106,7 @@ public interface FakeApi {
produces = { "*/*" },
consumes = { "application/json" }
)
default ResponseEntity<Boolean> fakeOuterBooleanSerialize(
@Parameter(name = "body", description = "Input boolean as post body") @Valid @RequestBody(required = false) Boolean body
) {
@@ -136,6 +138,7 @@ public interface FakeApi {
produces = { "*/*" },
consumes = { "application/json" }
)
default ResponseEntity<OuterComposite> fakeOuterCompositeSerialize(
@Parameter(name = "OuterComposite", description = "Input composite as post body") @Valid @RequestBody(required = false) OuterComposite outerComposite
) {
@@ -176,6 +179,7 @@ public interface FakeApi {
produces = { "*/*" },
consumes = { "application/json" }
)
default ResponseEntity<BigDecimal> fakeOuterNumberSerialize(
@Parameter(name = "body", description = "Input number as post body") @Valid @RequestBody(required = false) BigDecimal body
) {
@@ -207,6 +211,7 @@ public interface FakeApi {
produces = { "*/*" },
consumes = { "application/json" }
)
default ResponseEntity<String> fakeOuterStringSerialize(
@Parameter(name = "body", description = "Input string as post body") @Valid @RequestBody(required = false) String body
) {
@@ -235,6 +240,7 @@ public interface FakeApi {
value = "/fake/{petId}/response-object-different-names",
produces = { "application/json" }
)
default ResponseEntity<ResponseObjectWithDifferentFieldNames> responseObjectDifferentNames(
@Parameter(name = "petId", description = "ID of pet to update", required = true, in = ParameterIn.PATH) @PathVariable("petId") Long petId
) {
@@ -272,6 +278,7 @@ public interface FakeApi {
value = "/fake/body-with-file-schema",
consumes = { "application/json" }
)
default ResponseEntity<Void> testBodyWithFileSchema(
@Parameter(name = "FileSchemaTestClass", description = "", required = true) @Valid @RequestBody FileSchemaTestClass fileSchemaTestClass
) {
@@ -299,6 +306,7 @@ public interface FakeApi {
value = "/fake/body-with-query-params",
consumes = { "application/json" }
)
default ResponseEntity<Void> testBodyWithQueryParams(
@NotNull @Parameter(name = "query", description = "", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "query", required = true) String query,
@Parameter(name = "User", description = "", required = true) @Valid @RequestBody User user
@@ -332,6 +340,7 @@ public interface FakeApi {
produces = { "application/json" },
consumes = { "application/json" }
)
default ResponseEntity<Client> testClientModel(
@Parameter(name = "Client", description = "client model", required = true) @Valid @RequestBody Client client
) {
@@ -388,6 +397,7 @@ public interface FakeApi {
value = "/fake",
consumes = { "application/x-www-form-urlencoded" }
)
default ResponseEntity<Void> testEndpointParameters(
@Parameter(name = "number", description = "None", required = true) @Valid @RequestParam(value = "number", required = true) BigDecimal number,
@Parameter(name = "double", description = "None", required = true) @Valid @RequestParam(value = "double", required = true) Double _double,
@@ -441,6 +451,7 @@ public interface FakeApi {
value = "/fake",
consumes = { "application/x-www-form-urlencoded" }
)
default ResponseEntity<Void> testEnumParameters(
@Parameter(name = "enum_query_string_array", description = "Query parameter enum test (string array)", in = ParameterIn.QUERY) @Valid @RequestParam(value = "enum_query_string_array", required = false) List<String> enumQueryStringArray,
@Parameter(name = "enum_query_string", description = "Query parameter enum test (string)", in = ParameterIn.QUERY) @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString,
@@ -481,6 +492,7 @@ public interface FakeApi {
method = RequestMethod.DELETE,
value = "/fake"
)
default ResponseEntity<Void> testGroupParameters(
@NotNull @Parameter(name = "required_string_group", description = "Required String in group parameters", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "required_string_group", required = true) Integer requiredStringGroup,
@NotNull @Parameter(name = "required_int64_group", description = "Required Integer in group parameters", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "required_int64_group", required = true) Long requiredInt64Group,
@@ -513,6 +525,7 @@ public interface FakeApi {
value = "/fake/inline-additionalProperties",
consumes = { "application/json" }
)
default ResponseEntity<Void> testInlineAdditionalProperties(
@Parameter(name = "request_body", description = "request body", required = true) @Valid @RequestBody Map<String, String> requestBody
) {
@@ -543,6 +556,7 @@ public interface FakeApi {
value = "/fake/jsonFormData",
consumes = { "application/x-www-form-urlencoded" }
)
default ResponseEntity<Void> testJsonFormData(
@Parameter(name = "param", description = "field1", required = true) @Valid @RequestParam(value = "param", required = true) String param,
@Parameter(name = "param2", description = "field2", required = true) @Valid @RequestParam(value = "param2", required = true) String param2
@@ -603,6 +617,7 @@ public interface FakeApi {
method = RequestMethod.PUT,
value = "/fake/test-query-parameters"
)
default ResponseEntity<Void> testQueryParameterCollectionFormat(
@NotNull @Parameter(name = "pipe", description = "", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "pipe", required = true) List<String> pipe,
@NotNull @Parameter(name = "http", description = "", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "http", required = true) List<String> http,
@@ -635,6 +650,7 @@ public interface FakeApi {
value = "/fake/response-with-example",
produces = { "application/json" }
)
default ResponseEntity<Integer> testWithResultExample(
) {
@@ -681,6 +697,7 @@ public interface FakeApi {
produces = { "application/json" },
consumes = { "multipart/form-data" }
)
default ResponseEntity<ModelApiResponse> uploadFileWithRequiredFile(
@Parameter(name = "petId", description = "ID of pet to update", required = true, in = ParameterIn.PATH) @PathVariable("petId") Long petId,
@Parameter(name = "requiredFile", description = "file to upload", required = true) @RequestPart(value = "requiredFile", required = true) MultipartFile requiredFile,

View File

@@ -68,6 +68,7 @@ public interface FakeClassnameTestApi {
produces = { "application/json" },
consumes = { "application/json" }
)
default ResponseEntity<Client> testClassname(
@Parameter(name = "Client", description = "client model", required = true) @Valid @RequestBody Client client
) {

View File

@@ -69,6 +69,7 @@ public interface PetApi {
value = "/pet",
consumes = { "application/json", "application/xml" }
)
default ResponseEntity<Void> addPet(
@Parameter(name = "Pet", description = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody Pet pet
) {
@@ -105,6 +106,7 @@ public interface PetApi {
method = RequestMethod.DELETE,
value = "/pet/{petId}"
)
default ResponseEntity<Void> deletePet(
@Parameter(name = "petId", description = "Pet id to delete", required = true, in = ParameterIn.PATH) @PathVariable("petId") Long petId
) {
@@ -142,6 +144,7 @@ public interface PetApi {
value = "/pet/findByStatus",
produces = { "application/xml", "application/json" }
)
default 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
) {
@@ -196,6 +199,7 @@ public interface PetApi {
value = "/pet/findByTags",
produces = { "application/xml", "application/json" }
)
default ResponseEntity<Set<Pet>> findPetsByTags(
@NotNull @Parameter(name = "tags", description = "Tags to filter by", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "tags", required = true) Set<String> tags
) {
@@ -249,6 +253,7 @@ public interface PetApi {
value = "/pet/{petId}",
produces = { "application/xml", "application/json" }
)
default ResponseEntity<Pet> getPetById(
@Parameter(name = "petId", description = "ID of pet to return", required = true, in = ParameterIn.PATH) @PathVariable("petId") Long petId
) {
@@ -301,6 +306,7 @@ public interface PetApi {
value = "/pet",
consumes = { "application/json", "application/xml" }
)
default ResponseEntity<Void> updatePet(
@Parameter(name = "Pet", description = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody Pet pet
) {
@@ -335,6 +341,7 @@ public interface PetApi {
value = "/pet/{petId}",
consumes = { "application/x-www-form-urlencoded" }
)
default ResponseEntity<Void> updatePetWithForm(
@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,
@@ -374,6 +381,7 @@ public interface PetApi {
produces = { "application/json" },
consumes = { "multipart/form-data" }
)
default ResponseEntity<ModelApiResponse> uploadFile(
@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,

View File

@@ -64,6 +64,7 @@ public interface StoreApi {
method = RequestMethod.DELETE,
value = "/store/order/{order_id}"
)
default ResponseEntity<Void> deleteOrder(
@Parameter(name = "order_id", description = "ID of the order that needs to be deleted", required = true, in = ParameterIn.PATH) @PathVariable("order_id") String orderId
) {
@@ -97,6 +98,7 @@ public interface StoreApi {
value = "/store/inventory",
produces = { "application/json" }
)
default ResponseEntity<Map<String, Integer>> getInventory(
) {
@@ -133,6 +135,7 @@ public interface StoreApi {
value = "/store/order/{order_id}",
produces = { "application/xml", "application/json" }
)
default ResponseEntity<Order> getOrderById(
@Min(1L) @Max(5L) @Parameter(name = "order_id", description = "ID of pet that needs to be fetched", required = true, in = ParameterIn.PATH) @PathVariable("order_id") Long orderId
) {
@@ -182,6 +185,7 @@ public interface StoreApi {
produces = { "application/xml", "application/json" },
consumes = { "application/json" }
)
default ResponseEntity<Order> placeOrder(
@Parameter(name = "Order", description = "order placed for purchasing the pet", required = true) @Valid @RequestBody Order order
) {

View File

@@ -63,6 +63,7 @@ public interface UserApi {
value = "/user",
consumes = { "application/json" }
)
default ResponseEntity<Void> createUser(
@Parameter(name = "User", description = "Created user object", required = true) @Valid @RequestBody User user
) {
@@ -92,6 +93,7 @@ public interface UserApi {
value = "/user/createWithArray",
consumes = { "application/json" }
)
default ResponseEntity<Void> createUsersWithArrayInput(
@Parameter(name = "User", description = "List of user object", required = true) @Valid @RequestBody List<User> user
) {
@@ -121,6 +123,7 @@ public interface UserApi {
value = "/user/createWithList",
consumes = { "application/json" }
)
default ResponseEntity<Void> createUsersWithListInput(
@Parameter(name = "User", description = "List of user object", required = true) @Valid @RequestBody List<User> user
) {
@@ -151,6 +154,7 @@ public interface UserApi {
method = RequestMethod.DELETE,
value = "/user/{username}"
)
default ResponseEntity<Void> deleteUser(
@Parameter(name = "username", description = "The name that needs to be deleted", required = true, in = ParameterIn.PATH) @PathVariable("username") String username
) {
@@ -187,6 +191,7 @@ public interface UserApi {
value = "/user/{username}",
produces = { "application/xml", "application/json" }
)
default ResponseEntity<User> getUserByName(
@Parameter(name = "username", description = "The name that needs to be fetched. Use user1 for testing.", required = true, in = ParameterIn.PATH) @PathVariable("username") String username
) {
@@ -236,6 +241,7 @@ public interface UserApi {
value = "/user/login",
produces = { "application/xml", "application/json" }
)
default ResponseEntity<String> loginUser(
@NotNull @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", description = "The password for login in clear text", required = true, in = ParameterIn.QUERY) @Valid @RequestParam(value = "password", required = true) String password
@@ -264,6 +270,7 @@ public interface UserApi {
method = RequestMethod.GET,
value = "/user/logout"
)
default ResponseEntity<Void> logoutUser(
) {
@@ -296,6 +303,7 @@ public interface UserApi {
value = "/user/{username}",
consumes = { "application/json" }
)
default ResponseEntity<Void> updateUser(
@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