diff --git a/src/main/java/org/qortal/api/ApiService.java b/src/main/java/org/qortal/api/ApiService.java index 3231d7f8..495d3c69 100644 --- a/src/main/java/org/qortal/api/ApiService.java +++ b/src/main/java/org/qortal/api/ApiService.java @@ -108,8 +108,19 @@ public class ApiService { swaggerUIServlet.setInitParameter("pathInfoOnly", "true"); context.addServlet(swaggerUIServlet, "/api-documentation/*"); - rewriteHandler.addRule(new RedirectPatternRule("", "/api-documentation/")); // redirect to Swagger UI start page - rewriteHandler.addRule(new RedirectPatternRule("/api-documentation", "/api-documentation/")); // redirect to Swagger UI start page + rewriteHandler.addRule(new RedirectPatternRule("", "/api-documentation/")); // redirect empty path to API docs + rewriteHandler.addRule(new RedirectPatternRule("/api-documentation", "/api-documentation/")); // redirect to add trailing slash if missing + } else { + // Simple pages that explains that API documentation is disabled + ClassLoader loader = this.getClass().getClassLoader(); + ServletHolder swaggerUIServlet = new ServletHolder("api-docs-disabled", DefaultServlet.class); + swaggerUIServlet.setInitParameter("resourceBase", loader.getResource("api-docs-disabled/").toString()); + swaggerUIServlet.setInitParameter("dirAllowed", "true"); + swaggerUIServlet.setInitParameter("pathInfoOnly", "true"); + context.addServlet(swaggerUIServlet, "/api-documentation/*"); + + rewriteHandler.addRule(new RedirectPatternRule("", "/api-documentation/")); // redirect empty path to API docs + rewriteHandler.addRule(new RedirectPatternRule("/api-documentation", "/api-documentation/")); // redirect to add trailing slash if missing } // Start server diff --git a/src/main/resources/api-docs-disabled/index.html b/src/main/resources/api-docs-disabled/index.html new file mode 100644 index 00000000..5562c07d --- /dev/null +++ b/src/main/resources/api-docs-disabled/index.html @@ -0,0 +1,13 @@ + + + + API Documentation disabled + + + API documentation pages are currently disabled. +

+ To enable, add an entry like this to your settings.json file: +

+ "apiDocumentationEnabled": true, + +