![JAR search and dependency download from the Maven repository](/logo.png)
cd.connect.spring.jersey.ConnectSwaggerApiResource Maven / Gradle / Ivy
package cd.connect.spring.jersey;
import com.fasterxml.jackson.core.JsonProcessingException;
import io.swagger.annotations.ApiOperation;
import io.swagger.jaxrs.config.JaxrsScanner;
import io.swagger.jaxrs.config.SwaggerContextService;
import io.swagger.jaxrs.listing.BaseApiListingResource;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.util.Set;
/**
* @author Richard Vowles - https://plus.google.com/+RichardVowles
*/
@Path("/swagger.{type:json|yaml}")
public class ConnectSwaggerApiResource extends BaseApiListingResource {
@Context
ServletContext context;
protected boolean initialized = false;
public class ConnectJaxrsSwagger implements JaxrsScanner {
private final Application application;
public ConnectJaxrsSwagger(Application application) {
this.application = application;
}
@Override
public Set> classesFromContext(Application app, ServletConfig sc) {
return (Set>)app.getProperties().get(JerseyApplication.RESOURCE_INTERFACE_LIST);
}
@Override
public Set> classes() {
return (Set>)application.getProperties().get(JerseyApplication.RESOURCE_INTERFACE_LIST);
}
@Override
public boolean getPrettyPrint() {
return true;
}
@Override
public void setPrettyPrint(boolean b) {
}
}
@GET
@Produces({MediaType.APPLICATION_JSON, "application/yaml"})
@ApiOperation(value = "The swagger definition in either JSON or YAML", hidden = true)
public Response getListing(
@Context Application app,
@Context ServletConfig sc,
@Context HttpHeaders headers,
@Context UriInfo uriInfo,
@PathParam("type") String type) throws JsonProcessingException {
if (!initialized) {
sc.getServletContext().setAttribute(SwaggerContextService.SCANNER_ID_PREFIX + SwaggerContextService.SCANNER_ID_KEY, new ConnectJaxrsSwagger(app));
initialized = true;
}
if (StringUtils.isNotBlank(type) && type.trim().equalsIgnoreCase("yaml")) {
return getListingYamlResponse(app, context, sc, headers, uriInfo);
} else {
return getListingJsonResponse(app, context, sc, headers, uriInfo);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy