diff --git a/src/main/java/io/federecio/dropwizard/swagger/SwaggerBundle.java b/src/main/java/io/federecio/dropwizard/swagger/SwaggerBundle.java index 80e32dc2..b025c363 100644 --- a/src/main/java/io/federecio/dropwizard/swagger/SwaggerBundle.java +++ b/src/main/java/io/federecio/dropwizard/swagger/SwaggerBundle.java @@ -56,7 +56,7 @@ public void run(T configuration, Environment environment) throws Exception { ConfigurationHelper configurationHelper = new ConfigurationHelper(configuration, swaggerBundleConfiguration); new AssetsBundle(Constants.SWAGGER_RESOURCES_PATH, configurationHelper.getSwaggerUriPath(), null, Constants.SWAGGER_ASSETS_NAME).run(environment); - environment.jersey().register(new SwaggerResource(configurationHelper.getUrlPattern())); + environment.jersey().register(new SwaggerResource(configurationHelper.getUrlPattern(), swaggerBundleConfiguration.isValidationUrlDisabled())); environment.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL); setUpSwagger(swaggerBundleConfiguration, configurationHelper.getUrlPattern()); diff --git a/src/main/java/io/federecio/dropwizard/swagger/SwaggerBundleConfiguration.java b/src/main/java/io/federecio/dropwizard/swagger/SwaggerBundleConfiguration.java index 5e92585c..ff5b2d11 100644 --- a/src/main/java/io/federecio/dropwizard/swagger/SwaggerBundleConfiguration.java +++ b/src/main/java/io/federecio/dropwizard/swagger/SwaggerBundleConfiguration.java @@ -57,6 +57,9 @@ public class SwaggerBundleConfiguration { @JsonProperty private String licenseUrl; + @JsonProperty + private boolean isValidationUrlDisabled; + /** * For most of the scenarios this property is not needed. *

@@ -141,6 +144,14 @@ public void setUriPrefix(String uriPrefix) { this.uriPrefix = uriPrefix; } + public boolean isValidationUrlDisabled() { + return isValidationUrlDisabled; + } + + public void setIsValidationUrlDisabled(final boolean isValidationUrlDisabled) { + this.isValidationUrlDisabled = isValidationUrlDisabled; + } + @Override public String toString() { return "SwaggerBundleConfiguration{" + @@ -152,6 +163,7 @@ public String toString() { ", contact='" + contact + '\'' + ", license='" + license + '\'' + ", licenseUrl='" + licenseUrl + '\'' + + ", isValidationUrlDisabled='" + isValidationUrlDisabled + '\'' + '}'; } } diff --git a/src/main/java/io/federecio/dropwizard/swagger/SwaggerResource.java b/src/main/java/io/federecio/dropwizard/swagger/SwaggerResource.java index 56f0016f..62c32c20 100644 --- a/src/main/java/io/federecio/dropwizard/swagger/SwaggerResource.java +++ b/src/main/java/io/federecio/dropwizard/swagger/SwaggerResource.java @@ -27,13 +27,15 @@ @Produces(MediaType.TEXT_HTML) public class SwaggerResource { private final String urlPattern; + private final boolean isValidationUrlDisabled; - public SwaggerResource(String urlPattern) { + public SwaggerResource(String urlPattern, final boolean isValidationUrlDisabled) { this.urlPattern = urlPattern; + this.isValidationUrlDisabled = isValidationUrlDisabled; } @GET public SwaggerView get() { - return new SwaggerView(urlPattern); + return new SwaggerView(urlPattern, isValidationUrlDisabled); } } diff --git a/src/main/java/io/federecio/dropwizard/swagger/SwaggerView.java b/src/main/java/io/federecio/dropwizard/swagger/SwaggerView.java index e096fdb7..910250e0 100644 --- a/src/main/java/io/federecio/dropwizard/swagger/SwaggerView.java +++ b/src/main/java/io/federecio/dropwizard/swagger/SwaggerView.java @@ -29,8 +29,9 @@ public class SwaggerView extends View { private final String swaggerAssetsPath; private final String contextPath; + private boolean isValidationUrlDisabled; - protected SwaggerView(String urlPattern) { + protected SwaggerView(String urlPattern, final boolean isValidationUrlDisabled) { super("index.ftl", Charsets.UTF_8); if (urlPattern.equals("/")) { @@ -44,6 +45,8 @@ protected SwaggerView(String urlPattern) { } else { contextPath = urlPattern; } + + this.isValidationUrlDisabled = isValidationUrlDisabled; } /** @@ -61,4 +64,9 @@ public String getSwaggerAssetsPath() { public String getContextPath() { return contextPath; } + + @SuppressWarnings("unused") + public boolean isValidationUrlDisabled() { + return isValidationUrlDisabled; + } } diff --git a/src/main/resources/io/federecio/dropwizard/swagger/index.ftl b/src/main/resources/io/federecio/dropwizard/swagger/index.ftl index 44dd16a4..f3596a6e 100644 --- a/src/main/resources/io/federecio/dropwizard/swagger/index.ftl +++ b/src/main/resources/io/federecio/dropwizard/swagger/index.ftl @@ -27,6 +27,9 @@ $(function () { window.swaggerUi = new SwaggerUi({ url: "${contextPath}/swagger.json", + <#if validationUrlDisabled> + validatorUrl: null, + dom_id: "swagger-ui-container", supportedSubmitMethods: ['get', 'post', 'put', 'delete'], onComplete: function(swaggerApi, swaggerUi){