package org.gcube.data.access.storagehub.services; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Context; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Path("api-docs") public class DocManager { private static Logger logger = LoggerFactory.getLogger(DocManager.class); @GET @Path("/{any: .*}") public InputStream toDoc(@Context HttpServletRequest req) throws WebApplicationException { logger.info(DocManager.class.getSimpleName() + " toDoc called"); String pathInfo = req.getPathInfo(); logger.debug("pathInfo {}", pathInfo); try { if (pathInfo.endsWith("/api-docs")) { pathInfo += "index.html"; } if (pathInfo.endsWith("/api-docs/")) { pathInfo += "index.html"; } logger.info("going to {}", pathInfo); String realPath = req.getServletContext().getRealPath(pathInfo); return new FileInputStream(new File(realPath)); } catch (Exception e) { throw new WebApplicationException("error getting docs",e); } } }