package io.swagger.resources;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.Authorization;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
public abstract class AbstractResource<T extends Number> {
private Logger LOGGER = LoggerFactory.getLogger(AbstractResource.class);
@GET
@Path("/{petId1}")
@ApiOperation(value = "Find pet by ID",
notes = "Returns a single pet",
response = String.class,
authorizations = @Authorization(value = "api_key")
)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid ID supplied"),
@ApiResponse(code = 404, message = "Pet not found")})
public Response overriddenMethodWithTypedParam(
@ApiParam(value = "ID of pet to return") @PathParam("petId1") T petId) {
String pet = "dog";
return Response.ok().entity(pet).build();
}
@GET
@Path("/{petId2}")
@ApiOperation(value = "Find pet by ID",
notes = "Returns a single pet",
response = String.class,
authorizations = @Authorization(value = "api_key")
)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid ID supplied"),
@ApiResponse(code = 404, message = "Pet not found")})
public Response methodWithoutTypedParam(
@ApiParam(value = "ID of pet to return") @PathParam("petId2") Number petId) {
String pet = "dog";
return Response.ok().entity(pet).build();
}
@GET
@Path("/{petId3}")
@ApiOperation(value = "Find pet by ID",
notes = "Returns a single pet",
response = String.class,
authorizations = @Authorization(value = "api_key")
)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid ID supplied"),
@ApiResponse(code = 404, message = "Pet not found")})
public Response overriddenMethodWithoutTypedParam(
@ApiParam(value = "ID of pet to return") @PathParam("petId3") Long petId) {
String pet = "dog";
return Response.ok().entity(pet).build();
}
@DELETE
@Path("/{petId1}")
@ApiOperation(value = "Deletes a pet")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid pet value")})
public Response deletePet(
@ApiParam() @HeaderParam("api_key") String apiKey,
@ApiParam(value = "Pet id to delete", required = true) @PathParam("petId1") Long petId) {
return Response.ok().build();
}
}