2

I am following the swagger tutorial to swaggerize my web application. . I am using package scanning and Swagger's BeanConfig for swagger initialization. Is there a way to disable swagger in specific environment (e.g. production)? There are some discussion talking about disabling swagger with SpringMVC

Here is my web.xml

<servlet>
    <servlet-name>jersey</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>
            io.swagger.jaxrs.listing,
            com.expedia.ord.ops.rest
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<!-- Hooking up Swagger-Core in your application -->
<servlet>
    <servlet-name>SwaggerServlet</servlet-name>
    <servlet-class>com.expedia.ord.ops.util.SwaggerServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>jersey</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>SwaggerUI</servlet-name>
    <jsp-file>/SwaggerUI/index.html</jsp-file>
</servlet>

<servlet-mapping>
    <servlet-name>SwaggerUI</servlet-name>
    <url-pattern>/api/docs/*</url-pattern>
</servlet-mapping>

Here is my Swagger servlet:

public class SwaggerServlet extends HttpServlet
{
    static private final String[] SCHEMES = {"http"};

    @Value("${swagger.enable}")
    private boolean enableSwagger;

    @Value("${swagger.resource.package}")
    private String resourcePackage;

    @Value("${swagger.host}")
    private String host;

    @Value("${swagger.basePath}")
    private String basePath;

    @Value("${swagger.api.version}")
    private String version;

    @Override
    public void init(final ServletConfig config) throws ServletException
    {
        super.init(config);
        SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());

        final BeanConfig beanConfig = new BeanConfig();
        beanConfig.setVersion(version);
        beanConfig.setSchemes(SCHEMES);
        beanConfig.setHost(host);
        beanConfig.setBasePath(basePath);
        beanConfig.setResourcePackage(resourcePackage);
        beanConfig.setScan(enableSwagger);
    }
}
Community
  • 1
  • 1

0 Answers0