[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

@@ -8,3 +8,4 @@ additionalProperties:
documentationProvider: springfox
artifactId: springboot-spring-pageable-delegatePattern
hideGenerationTimestamp: 'true'
implicitHeadersRegex: ^Version.*

View File

@@ -7,3 +7,4 @@ additionalProperties:
documentationProvider: springfox
artifactId: springboot-spring-pageable
hideGenerationTimestamp: 'true'
implicitHeadersRegex: ^Version.*

View File

@@ -116,6 +116,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|x-class-extra-annotation|List of custom annotations to be added to model|MODEL|null
|x-field-extra-annotation|List of custom annotations to be added to property|FIELD|null
|x-spring-paginated|Add org.springframework.data.domain.Pageable to controller method. Can be used to handle page & size query parameters|OPERATION|false
|x-version-param|Marker property that tells that this parameter would be used for endpoint versioning. Applicable for headers & query params. true/false|OPERATION_PARAMETER|null
## IMPORT MAPPING

View File

@@ -109,6 +109,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|x-class-extra-annotation|List of custom annotations to be added to model|MODEL|null
|x-field-extra-annotation|List of custom annotations to be added to property|FIELD|null
|x-spring-paginated|Add org.springframework.data.domain.Pageable to controller method. Can be used to handle page & size query parameters|OPERATION|false
|x-version-param|Marker property that tells that this parameter would be used for endpoint versioning. Applicable for headers & query params. true/false|OPERATION_PARAMETER|null
## IMPORT MAPPING

View File

@@ -27,6 +27,7 @@ public class CodegenOperation {
public boolean hasAuthMethods, hasConsumes, hasProduces, hasParams, hasOptionalParams, hasRequiredParams,
returnTypeIsPrimitive, returnSimpleType, subresourceOperation, isMap,
isArray, isMultipart,
hasVersionHeaders = false, hasVersionQueryParams = false,
isResponseBinary = false, isResponseFile = false, isResponseOptional = false, hasReference = false, defaultReturnType = false,
isRestfulIndex, isRestfulShow, isRestfulCreate, isRestfulUpdate, isRestfulDestroy,
isRestful, isDeprecated, isCallbackRequest, uniqueItems, hasDefaultResponse = false,

View File

@@ -15,6 +15,7 @@ public enum VendorExtension {
X_CONTENT_TYPE("x-content-type", ExtensionLevel.OPERATION, "Specify custom value for 'Content-Type' header for operation", null),
X_CLASS_EXTRA_ANNOTATION("x-class-extra-annotation", ExtensionLevel.MODEL, "List of custom annotations to be added to model", null),
X_FIELD_EXTRA_ANNOTATION("x-field-extra-annotation", ExtensionLevel.FIELD, "List of custom annotations to be added to property", null),
X_VERSION_PARAM("x-version-param", ExtensionLevel.OPERATION_PARAMETER, "Marker property that tells that this parameter would be used for endpoint versioning. Applicable for headers & query params. true/false", null),
;
private final String name;
@@ -52,7 +53,8 @@ public enum VendorExtension {
public enum ExtensionLevel {
FIELD,
MODEL,
OPERATION
OPERATION,
OPERATION_PARAMETER
}
}

View File

@@ -804,6 +804,7 @@ public class SpringCodegen extends AbstractJavaCodegen
}
});
prepareVersioningParameters(ops);
handleImplicitHeaders(operation);
}
// The tag for the controller is the first tag of the first operation
@@ -857,6 +858,32 @@ public class SpringCodegen extends AbstractJavaCodegen
}
}
private void prepareVersioningParameters(List<CodegenOperation> operations) {
for (CodegenOperation operation : operations) {
if (operation.getHasHeaderParams()) {
List<CodegenParameter> versionParams = operation.headerParams.stream()
.filter(param -> {
String xVersionParam = Objects.toString(param.vendorExtensions.get(VendorExtension.X_VERSION_PARAM.getName()), "false");
return Boolean.parseBoolean(xVersionParam);
})
.collect(Collectors.toList());
operation.hasVersionHeaders = !versionParams.isEmpty();
operation.vendorExtensions.put("versionHeaderParamsList", versionParams);
}
if (operation.getHasQueryParams()) {
List<CodegenParameter> versionParams = operation.queryParams.stream()
.filter(param -> {
String xVersionParam = Objects.toString(param.vendorExtensions.get(VendorExtension.X_VERSION_PARAM.getName()), "false");
return Boolean.parseBoolean(xVersionParam);
})
.collect(Collectors.toList());
operation.hasVersionQueryParams = !versionParams.isEmpty();
operation.vendorExtensions.put("versionQueryParamsList", versionParams);
}
}
}
@Override
public Map<String, Object> postProcessSupportingFileData(Map<String, Object> objs) {
generateYAMLSpecFile(objs);
@@ -1185,6 +1212,7 @@ public class SpringCodegen extends AbstractJavaCodegen
public List<VendorExtension> getSupportedVendorExtensions() {
List<VendorExtension> extensions = super.getSupportedVendorExtensions();
extensions.add(VendorExtension.X_SPRING_PAGINATED);
extensions.add(VendorExtension.X_VERSION_PARAM);
return extensions;
}

View File

@@ -218,7 +218,9 @@ public interface {{classname}} {
produces = "{{{vendorExtensions.x-accepts}}}"{{/hasProduces}}{{#hasConsumes}},
consumes = "{{{vendorExtensions.x-content-type}}}"{{/hasConsumes}}{{/singleContentTypes}}{{^singleContentTypes}}{{#hasProduces}},
produces = { {{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}} }{{/hasProduces}}{{#hasConsumes}},
consumes = { {{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}} }{{/hasConsumes}}{{/singleContentTypes}}
consumes = { {{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}} }{{/hasConsumes}}{{/singleContentTypes}}{{#hasVersionHeaders}},
headers = { {{#vendorExtensions.versionHeaderParamsList}}"{{baseName}}{{#defaultValue}}={{{.}}}{{/defaultValue}}"{{^-last}}, {{/-last}}{{/vendorExtensions.versionHeaderParamsList}} } {{/hasVersionHeaders}}{{#hasVersionQueryParams}},
params = { {{#vendorExtensions.versionQueryParamsList}}"{{baseName}}{{#defaultValue}}={{{.}}}{{/defaultValue}}"{{^-last}}, {{/-last}}{{/vendorExtensions.versionQueryParamsList}} } {{/hasVersionQueryParams}}
)
{{#jdk8-default-interface}}default {{/jdk8-default-interface}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{#delegate-method}}_{{/delegate-method}}{{operationId}}(
{{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{>cookieParams}}{{^-last}},

View File

@@ -1127,6 +1127,101 @@ paths:
- petstore_auth:
- 'write:pets'
- 'read:pets'
/versioning/headers:
post:
tags:
- versioning
operationId: versioningHeaders
parameters:
- name: VersionWithDefaultValue
in: header
required: true
type: string
default: 'V1'
x-version-param: true
- name: VersionNoDefaultValue
in: header
required: true
type: string
x-version-param: true
- name: petId
in: path
description: ID of pet to update
required: true
type: integer
format: int64
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/ApiResponse'
/versioning/query-params:
post:
tags:
- versioning
operationId: versioningQueryParams
parameters:
- name: VersionWithDefaultValue
in: query
required: true
type: string
default: 'V1'
x-version-param: true
- name: VersionNoDefaultValue
in: query
required: true
type: string
x-version-param: true
- name: petId
in: path
description: ID of pet to update
required: true
type: integer
format: int64
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/ApiResponse'
/versioning/mix:
post:
tags:
- versioning
operationId: versioningMix
parameters:
- name: VersionWithDefaultValueQuery
in: query
required: true
type: string
default: 'V1'
x-version-param: true
- name: VersionNoDefaultValueQuery
in: query
required: true
type: string
x-version-param: true
- name: VersionWithDefaultValueHeader
in: header
required: true
type: string
default: 'V1'
x-version-param: true
- name: VersionNoDefaultValueHeader
in: header
required: true
type: string
x-version-param: true
- name: petId
in: path
description: ID of pet to update
required: true
type: integer
format: int64
responses:
'200':
description: successful operation
schema:
$ref: '#/definitions/ApiResponse'
securityDefinitions:
petstore_auth:
type: oauth2

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:

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 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)
})
@ApiImplicitParams({
@ApiImplicitParam(name = "VersionWithDefaultValue", value = "", required = true, dataType = "String", paramType = "header"),
@ApiImplicitParam(name = "VersionNoDefaultValue", value = "", required = true, dataType = "String", paramType = "header")
})
@RequestMapping(
method = RequestMethod.POST,
value = "/versioning/headers",
produces = { "*/*" },
headers = { "VersionWithDefaultValue=V1", "VersionNoDefaultValue" }
)
default ResponseEntity<ModelApiResponse> versioningHeaders(
@ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") Long petId
) {
return getDelegate().versioningHeaders(petId);
}
/**
* POST /versioning/mix
*
* @param versionWithDefaultValueQuery (required)
* @param versionNoDefaultValueQuery (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)
})
@ApiImplicitParams({
@ApiImplicitParam(name = "VersionWithDefaultValueHeader", value = "", required = true, dataType = "String", paramType = "header"),
@ApiImplicitParam(name = "VersionNoDefaultValueHeader", value = "", required = true, dataType = "String", paramType = "header")
})
@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,
@ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") Long petId
) {
return getDelegate().versioningMix(versionWithDefaultValueQuery, versionNoDefaultValueQuery, 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,97 @@
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 petId ID of pet to update (required)
* @return successful operation (status code 200)
* @see VersioningApi#versioningHeaders
*/
default ResponseEntity<ModelApiResponse> versioningHeaders(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 petId ID of pet to update (required)
* @return successful operation (status code 200)
* @see VersioningApi#versioningMix
*/
default ResponseEntity<ModelApiResponse> versioningMix(String versionWithDefaultValueQuery,
String versionNoDefaultValueQuery,
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:

View File

@@ -15,6 +15,8 @@ src/main/java/org/openapitools/api/StoreApi.java
src/main/java/org/openapitools/api/StoreApiController.java
src/main/java/org/openapitools/api/UserApi.java
src/main/java/org/openapitools/api/UserApiController.java
src/main/java/org/openapitools/api/VersioningApi.java
src/main/java/org/openapitools/api/VersioningApiController.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,167 @@
/**
* 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.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import javax.validation.constraints.*;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Generated;
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
@Validated
@Api(value = "versioning", description = "the versioning API")
public interface VersioningApi {
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)
*/
@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
) {
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)
*/
@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
) {
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)
*/
@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
) {
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

@@ -0,0 +1,46 @@
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 org.springframework.web.context.request.NativeWebRequest;
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 NativeWebRequest request;
@Autowired
public VersioningApiController(NativeWebRequest request) {
this.request = request;
}
@Override
public Optional<NativeWebRequest> getRequest() {
return Optional.ofNullable(request);
}
}

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:

View File

@@ -15,6 +15,8 @@ src/main/java/org/openapitools/api/StoreApi.java
src/main/java/org/openapitools/api/StoreApiController.java
src/main/java/org/openapitools/api/UserApi.java
src/main/java/org/openapitools/api/UserApiController.java
src/main/java/org/openapitools/api/VersioningApi.java
src/main/java/org/openapitools/api/VersioningApiController.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,167 @@
/**
* 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.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import javax.validation.constraints.*;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Generated;
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
@Validated
@Api(value = "versioning", description = "the versioning API")
public interface VersioningApi {
default Optional<NativeWebRequest> getRequest() {
return Optional.empty();
}
/**
* POST /versioning/headers
*
* @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)
})
@ApiImplicitParams({
@ApiImplicitParam(name = "VersionWithDefaultValue", value = "", required = true, dataType = "String", paramType = "header"),
@ApiImplicitParam(name = "VersionNoDefaultValue", value = "", required = true, dataType = "String", paramType = "header")
})
@RequestMapping(
method = RequestMethod.POST,
value = "/versioning/headers",
produces = { "*/*" },
headers = { "VersionWithDefaultValue=V1", "VersionNoDefaultValue" }
)
default ResponseEntity<ModelApiResponse> versioningHeaders(
@ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") 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 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)
})
@ApiImplicitParams({
@ApiImplicitParam(name = "VersionWithDefaultValueHeader", value = "", required = true, dataType = "String", paramType = "header"),
@ApiImplicitParam(name = "VersionNoDefaultValueHeader", value = "", required = true, dataType = "String", paramType = "header")
})
@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,
@ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") 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)
*/
@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
) {
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

@@ -0,0 +1,46 @@
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 org.springframework.web.context.request.NativeWebRequest;
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 NativeWebRequest request;
@Autowired
public VersioningApiController(NativeWebRequest request) {
this.request = request;
}
@Override
public Optional<NativeWebRequest> getRequest() {
return Optional.ofNullable(request);
}
}

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: