Parameters31Resource.java
package io.swagger.v3.jaxrs2.petstore.parameter;
import io.swagger.v3.jaxrs2.resources.model.Pet;
import io.swagger.v3.jaxrs2.resources.model.User;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.StringToClassMapItem;
import io.swagger.v3.oas.annotations.enums.Explode;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.enums.ParameterStyle;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
/**
* Resource with some Parameters examples
*/
public class Parameters31Resource {
@Path("/parameters")
@POST
@Operation(
operationId = "subscribe",
description = "subscribes a client to updates relevant to the requestor's account, as " +
"identified by the input token. The supplied url will be used as the delivery address for response payloads",
parameters = {
@Parameter(in = ParameterIn.PATH, name = "subscriptionId",
required = true,
schema = @Schema(
$id = "http://yourdomain.com/schemas/myschema.json",
$comment = "schema $comment",
type = "string"
),
style = ParameterStyle.SIMPLE),
@Parameter(in = ParameterIn.QUERY, name = "explodeFalse",
required = true,
explode = Explode.FALSE,
schema = @Schema(
types = { "string", "number" },
exclusiveMaximumValue = 100,
$schema = "parameter $schema",
$anchor = "parameter $anchor",
_if = Parameters31Resource.SubscriptionResponse.class,
_else = Parameters31Resource.SubscriptionResponse.class,
then = Parameters31Resource.SubscriptionResponse.class
)),
@Parameter(in = ParameterIn.QUERY, name = "explodeAvoiding", required = true, explode = Explode.TRUE,
schema = @Schema(
type = "int",
format = "id",
exclusiveMaximumValue = 1000,
exclusiveMinimumValue = 10,
description = "the generated id",
accessMode = Schema.AccessMode.READ_ONLY
)),
@Parameter(in = ParameterIn.QUERY, name = "arrayParameter", required = true, explode = Explode.TRUE,
array = @ArraySchema(maxItems = 10, minItems = 1,
schema = @Schema(implementation = Parameters31Resource.SubscriptionResponse.class),
uniqueItems = true
)
,
schema = @Schema(
type = "int",
format = "id",
description = "the generated id",
accessMode = Schema.AccessMode.READ_ONLY),
content = @Content(schema = @Schema(type = "number",
description = "the generated id",
accessMode = Schema.AccessMode.READ_ONLY))
),
@Parameter(in = ParameterIn.QUERY, name = "arrayParameterImplementation", required = true, explode = Explode.TRUE,
array = @ArraySchema(
maxItems = 10,
minItems = 1,
maxContains = 50,
minContains = 1,
contains = @Schema(implementation = Parameters31Resource.SubscriptionResponse.class),
unevaluatedItems = @Schema(implementation = Parameters31Resource.SubscriptionResponse.class),
schema = @Schema(implementation = Parameters31Resource.SubscriptionResponse.class),
uniqueItems = true
)
),
@Parameter(in = ParameterIn.QUERY, name = "arrayParameterImplementation2", required = true, explode = Explode.TRUE,
schema = @Schema(implementation = Parameters31Resource.SubscriptionResponse.class))
},
responses = {
@ApiResponse(
description = "test description", content = @Content(
mediaType = "*/*",
schema = @Schema(
$id = "http://yourdomain.com/schemas/myschema.json",
dependentSchemas = {
@StringToClassMapItem(
key = "pet",
value = Pet.class
)
},
patternProperties = {
@StringToClassMapItem(
key = "user",
value = User.class
)
},
properties = {
@StringToClassMapItem(
key = "extraObject",
value = Object.class
)
}
)
))
})
@Consumes({"application/json", "application/xml"})
public Parameters31Resource.SubscriptionResponse subscribe(@Parameter(description = "idParam")
@QueryParam("id") final String id) {
return null;
}
public static class SubscriptionResponse {
public String subscriptionId;
}
}