use of io.swagger.annotations.ApiResponse in project indy by Commonjava.
the class AutoProxCatalogResource method deleteRule.
@ApiOperation(value = "Delete a single AutoProx rule")
@ApiResponses({ @ApiResponse(code = 404, message = "No rule by the specified name"), @ApiResponse(code = 204, message = "Rule spec deleted") })
@DELETE
@Path("{name}")
public Response deleteRule(@PathParam("name") final String name, @Context final HttpServletRequest request, @Context final SecurityContext securityContext) {
Response response = checkEnabled();
if (response != null) {
return response;
}
try {
String user = securityManager.getUser(securityContext, request);
final RuleDTO dto = controller.deleteRule(name, user);
if (dto == null) {
response = status(NOT_FOUND).build();
} else {
response = noContent().build();
}
} catch (final AutoProxRuleException e) {
logger.error(String.format("Failed to delete rule: %s. Reason: %s", name, e.getMessage()), e);
response = formatResponse(e);
}
return response;
}
use of io.swagger.annotations.ApiResponse in project indy by Commonjava.
the class AutoProxCatalogResource method reparseCatalog.
@ApiOperation("Reparse the AutoProx rule catalog from files.")
@ApiResponse(code = 200, message = "Re-parsing is complete.")
@DELETE
public Response reparseCatalog() {
Response response = checkEnabled();
if (response != null) {
return response;
}
try {
controller.reparseCatalog();
response = Response.ok().build();
} catch (final AutoProxRuleException e) {
logger.error(String.format("Failed to reparse catalog from disk. Reason: %s", e.getMessage()), e);
response = formatResponse(e);
}
return response;
}
use of io.swagger.annotations.ApiResponse in project indy by Commonjava.
the class AutoProxCatalogResource method createRule.
@ApiOperation(value = "Create an AutoProx rule", response = RuleDTO.class)
@ApiResponse(code = 201, message = "Rule created", responseHeaders = @ResponseHeader(name = "Location", description = "Resource location of the new rule"))
@ApiImplicitParams({ @ApiImplicitParam(allowMultiple = false, paramType = "body", name = "body", required = true, dataType = "org.commonjava.indy.autoprox.rest.dto.RuleDTO", value = "The rule definition JSON") })
@POST
@Consumes(ApplicationContent.application_json)
public Response createRule(@Context final HttpServletRequest request, @Context final UriInfo uriInfo, @Context SecurityContext securityContext) {
Response response = checkEnabled();
if (response != null) {
return response;
}
RuleDTO dto = null;
try {
dto = serializer.readValue(request.getInputStream(), RuleDTO.class);
} catch (final IOException e) {
final String message = "Failed to read " + RuleDTO.class.getSimpleName() + " from request body.";
logger.error(message, e);
response = formatResponse(e, message);
}
if (response != null) {
return response;
}
try {
String user = securityManager.getUser(securityContext, request);
dto = controller.storeRule(dto, user);
final URI uri = uriInfo.getBaseUriBuilder().path(getClass()).path(dto.getName()).build();
response = formatCreatedResponseWithJsonEntity(uri, dto, serializer);
} catch (final AutoProxRuleException e) {
final String message = "Failed to store rule: " + dto.getName() + ".";
logger.error(message, e);
response = formatResponse(e, message);
}
return response;
}
use of io.swagger.annotations.ApiResponse in project indy by Commonjava.
the class AutoProxCatalogResource method updateRule.
@ApiOperation(value = "Update an AutoProx rule", response = RuleDTO.class)
@ApiResponses({ @ApiResponse(code = 201, message = "Rule created", responseHeaders = @ResponseHeader(name = "Location", description = "Resource location of the new rule")), @ApiResponse(code = 200, message = "Existing rule updated") })
@ApiImplicitParams({ @ApiImplicitParam(allowMultiple = false, paramType = "body", name = "body", required = true, dataType = "org.commonjava.indy.autoprox.rest.dto.RuleDTO", value = "The rule definition JSON (NOTE: Name will over OVERRIDDEN with value from storage path.)") })
@PUT
@Path("{name}")
@Consumes(ApplicationContent.application_json)
public Response updateRule(@PathParam("name") final String name, @Context final HttpServletRequest request, @Context final UriInfo uriInfo, @Context final SecurityContext securityContext) {
Response response = checkEnabled();
if (response != null) {
return response;
}
RuleDTO dto = controller.getRule(name);
boolean updating = true;
if (dto == null) {
updating = false;
}
try {
dto = serializer.readValue(request.getInputStream(), RuleDTO.class);
dto.setName(name);
} catch (final IOException e) {
final String message = "Failed to read " + RuleDTO.class.getSimpleName() + " from request body.";
logger.error(message, e);
response = formatResponse(e, message);
}
if (response != null) {
return response;
}
try {
String user = securityManager.getUser(securityContext, request);
dto = controller.storeRule(dto, user);
if (updating) {
response = ok().build();
} else {
final URI uri = uriInfo.getBaseUriBuilder().path(getClass()).path(dto.getName()).build();
response = created(uri).build();
}
} catch (final AutoProxRuleException e) {
final String message = "Failed to store rule: " + dto.getName() + ".";
logger.error(message, e);
response = formatResponse(e, message);
}
return response;
}
use of io.swagger.annotations.ApiResponse in project java-chassis by ServiceComb.
the class ApiResponsesClassProcessor method process.
@Override
public void process(Object annotation, SwaggerGenerator swaggerGenerator) {
ApiResponses apiResponses = (ApiResponses) annotation;
ClassAnnotationProcessor processor = swaggerGenerator.getContext().findClassAnnotationProcessor(ApiResponse.class);
for (ApiResponse apiResponse : apiResponses.value()) {
processor.process(apiResponse, swaggerGenerator);
}
}
Aggregations