[Java][Spring] version parameter (#14847)

This commit is contained in:
Oleh Kurpiak
2023-03-02 13:29:01 +02:00
committed by GitHub
parent 60e2d605c4
commit ca3e8be1bc
27 changed files with 1642 additions and 2 deletions

View File

@@ -21,6 +21,9 @@ src/main/java/org/openapitools/api/StoreApiDelegate.java
src/main/java/org/openapitools/api/UserApi.java
src/main/java/org/openapitools/api/UserApiController.java
src/main/java/org/openapitools/api/UserApiDelegate.java
src/main/java/org/openapitools/api/VersioningApi.java
src/main/java/org/openapitools/api/VersioningApiController.java
src/main/java/org/openapitools/api/VersioningApiDelegate.java
src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java
src/main/java/org/openapitools/configuration/HomeController.java
src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java

View File

@@ -0,0 +1,133 @@
/**
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (6.5.0-SNAPSHOT).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
package org.openapitools.api;
import org.openapitools.model.ModelApiResponse;
import io.swagger.annotations.*;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import javax.validation.constraints.*;
import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
@Validated
@Api(value = "versioning", description = "the versioning API")
public interface VersioningApi {
default VersioningApiDelegate getDelegate() {
return new VersioningApiDelegate() {};
}
/**
* POST /versioning/headers
*
* @param versionWithDefaultValue (required)
* @param versionNoDefaultValue (required)
* @param petId ID of pet to update (required)
* @return successful operation (status code 200)
*/
@ApiOperation(
tags = { "versioning" },
value = "",
nickname = "versioningHeaders",
notes = "",
response = ModelApiResponse.class
)
@ApiResponses({
@ApiResponse(code = 200, message = "successful operation", response = ModelApiResponse.class)
})
@RequestMapping(
method = RequestMethod.POST,
value = "/versioning/headers",
produces = { "*/*" },
headers = { "VersionWithDefaultValue=V1", "VersionNoDefaultValue" }
)
default ResponseEntity<ModelApiResponse> versioningHeaders(
@NotNull @ApiParam(value = "", required = true, defaultValue = "V1") @RequestHeader(value = "VersionWithDefaultValue", required = true, defaultValue = "V1") String versionWithDefaultValue,
@NotNull @ApiParam(value = "", required = true) @RequestHeader(value = "VersionNoDefaultValue", required = true) String versionNoDefaultValue,
@ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") Long petId
) {
return getDelegate().versioningHeaders(versionWithDefaultValue, versionNoDefaultValue, petId);
}
/**
* POST /versioning/mix
*
* @param versionWithDefaultValueQuery (required)
* @param versionNoDefaultValueQuery (required)
* @param versionWithDefaultValueHeader (required)
* @param versionNoDefaultValueHeader (required)
* @param petId ID of pet to update (required)
* @return successful operation (status code 200)
*/
@ApiOperation(
tags = { "versioning" },
value = "",
nickname = "versioningMix",
notes = "",
response = ModelApiResponse.class
)
@ApiResponses({
@ApiResponse(code = 200, message = "successful operation", response = ModelApiResponse.class)
})
@RequestMapping(
method = RequestMethod.POST,
value = "/versioning/mix",
produces = { "*/*" },
headers = { "VersionWithDefaultValueHeader=V1", "VersionNoDefaultValueHeader" } ,
params = { "VersionWithDefaultValueQuery=V1", "VersionNoDefaultValueQuery" }
)
default ResponseEntity<ModelApiResponse> versioningMix(
@NotNull @ApiParam(value = "", required = true, defaultValue = "V1") @Valid @RequestParam(value = "VersionWithDefaultValueQuery", required = true, defaultValue = "V1") String versionWithDefaultValueQuery,
@NotNull @ApiParam(value = "", required = true) @Valid @RequestParam(value = "VersionNoDefaultValueQuery", required = true) String versionNoDefaultValueQuery,
@NotNull @ApiParam(value = "", required = true, defaultValue = "V1") @RequestHeader(value = "VersionWithDefaultValueHeader", required = true, defaultValue = "V1") String versionWithDefaultValueHeader,
@NotNull @ApiParam(value = "", required = true) @RequestHeader(value = "VersionNoDefaultValueHeader", required = true) String versionNoDefaultValueHeader,
@ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") Long petId
) {
return getDelegate().versioningMix(versionWithDefaultValueQuery, versionNoDefaultValueQuery, versionWithDefaultValueHeader, versionNoDefaultValueHeader, petId);
}
/**
* POST /versioning/query-params
*
* @param versionWithDefaultValue (required)
* @param versionNoDefaultValue (required)
* @param petId ID of pet to update (required)
* @return successful operation (status code 200)
*/
@ApiOperation(
tags = { "versioning" },
value = "",
nickname = "versioningQueryParams",
notes = "",
response = ModelApiResponse.class
)
@ApiResponses({
@ApiResponse(code = 200, message = "successful operation", response = ModelApiResponse.class)
})
@RequestMapping(
method = RequestMethod.POST,
value = "/versioning/query-params",
produces = { "*/*" },
params = { "VersionWithDefaultValue=V1", "VersionNoDefaultValue" }
)
default ResponseEntity<ModelApiResponse> versioningQueryParams(
@NotNull @ApiParam(value = "", required = true, defaultValue = "V1") @Valid @RequestParam(value = "VersionWithDefaultValue", required = true, defaultValue = "V1") String versionWithDefaultValue,
@NotNull @ApiParam(value = "", required = true) @Valid @RequestParam(value = "VersionNoDefaultValue", required = true) String versionNoDefaultValue,
@ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") Long petId
) {
return getDelegate().versioningQueryParams(versionWithDefaultValue, versionNoDefaultValue, petId);
}
}

View File

@@ -0,0 +1,44 @@
package org.openapitools.api;
import org.openapitools.model.ModelApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.*;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Generated;
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
@Controller
@RequestMapping("${openapi.openAPIPetstore.base-path:/v2}")
public class VersioningApiController implements VersioningApi {
private final VersioningApiDelegate delegate;
public VersioningApiController(@Autowired(required = false) VersioningApiDelegate delegate) {
this.delegate = Optional.ofNullable(delegate).orElse(new VersioningApiDelegate() {});
}
@Override
public VersioningApiDelegate getDelegate() {
return delegate;
}
}

View File

@@ -0,0 +1,105 @@
package org.openapitools.api;
import org.openapitools.model.ModelApiResponse;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Generated;
/**
* A delegate to be called by the {@link VersioningApiController}}.
* Implement this interface with a {@link org.springframework.stereotype.Service} annotated class.
*/
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
public interface VersioningApiDelegate {
default Optional<NativeWebRequest> getRequest() {
return Optional.empty();
}
/**
* POST /versioning/headers
*
* @param versionWithDefaultValue (required)
* @param versionNoDefaultValue (required)
* @param petId ID of pet to update (required)
* @return successful operation (status code 200)
* @see VersioningApi#versioningHeaders
*/
default ResponseEntity<ModelApiResponse> versioningHeaders(String versionWithDefaultValue,
String versionNoDefaultValue,
Long petId) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) {
String exampleString = "{ \"code\" : 0, \"type\" : \"type\", \"message\" : \"message\" }";
ApiUtil.setExampleResponse(request, "*/*", exampleString);
break;
}
}
});
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
/**
* POST /versioning/mix
*
* @param versionWithDefaultValueQuery (required)
* @param versionNoDefaultValueQuery (required)
* @param versionWithDefaultValueHeader (required)
* @param versionNoDefaultValueHeader (required)
* @param petId ID of pet to update (required)
* @return successful operation (status code 200)
* @see VersioningApi#versioningMix
*/
default ResponseEntity<ModelApiResponse> versioningMix(String versionWithDefaultValueQuery,
String versionNoDefaultValueQuery,
String versionWithDefaultValueHeader,
String versionNoDefaultValueHeader,
Long petId) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) {
String exampleString = "{ \"code\" : 0, \"type\" : \"type\", \"message\" : \"message\" }";
ApiUtil.setExampleResponse(request, "*/*", exampleString);
break;
}
}
});
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
/**
* POST /versioning/query-params
*
* @param versionWithDefaultValue (required)
* @param versionNoDefaultValue (required)
* @param petId ID of pet to update (required)
* @return successful operation (status code 200)
* @see VersioningApi#versioningQueryParams
*/
default ResponseEntity<ModelApiResponse> versioningQueryParams(String versionWithDefaultValue,
String versionNoDefaultValue,
Long petId) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) {
String exampleString = "{ \"code\" : 0, \"type\" : \"type\", \"message\" : \"message\" }";
ApiUtil.setExampleResponse(request, "*/*", exampleString);
break;
}
}
});
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
}

View File

@@ -1213,6 +1213,135 @@ paths:
x-accepts: application/json
x-tags:
- tag: pet
/versioning/headers:
post:
operationId: versioningHeaders
parameters:
- in: header
name: VersionWithDefaultValue
required: true
schema:
default: V1
type: string
x-version-param: true
x-version-param: true
- in: header
name: VersionNoDefaultValue
required: true
schema:
type: string
x-version-param: true
x-version-param: true
- description: ID of pet to update
in: path
name: petId
required: true
schema:
format: int64
type: integer
responses:
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiResponse'
description: successful operation
tags:
- versioning
x-accepts: '*/*'
x-tags:
- tag: versioning
/versioning/query-params:
post:
operationId: versioningQueryParams
parameters:
- in: query
name: VersionWithDefaultValue
required: true
schema:
default: V1
type: string
x-version-param: true
x-version-param: true
- in: query
name: VersionNoDefaultValue
required: true
schema:
type: string
x-version-param: true
x-version-param: true
- description: ID of pet to update
in: path
name: petId
required: true
schema:
format: int64
type: integer
responses:
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiResponse'
description: successful operation
tags:
- versioning
x-accepts: '*/*'
x-tags:
- tag: versioning
/versioning/mix:
post:
operationId: versioningMix
parameters:
- in: query
name: VersionWithDefaultValueQuery
required: true
schema:
default: V1
type: string
x-version-param: true
x-version-param: true
- in: query
name: VersionNoDefaultValueQuery
required: true
schema:
type: string
x-version-param: true
x-version-param: true
- in: header
name: VersionWithDefaultValueHeader
required: true
schema:
default: V1
type: string
x-version-param: true
x-version-param: true
- in: header
name: VersionNoDefaultValueHeader
required: true
schema:
type: string
x-version-param: true
x-version-param: true
- description: ID of pet to update
in: path
name: petId
required: true
schema:
format: int64
type: integer
responses:
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiResponse'
description: successful operation
tags:
- versioning
x-accepts: '*/*'
x-tags:
- tag: versioning
components:
schemas:
Order: