Как включить Swagger UI? Tomcat, SpringMVC, отдых

моя конфигурация следующая:

пом.в XML

<dependencies>
        <!-- Swagger -->
        <dependency>
            <groupId>com.mangofactory</groupId>
            <artifactId>swagger-springmvc</artifactId>
            <version>0.9.1</version>
        </dependency>

        <!-- Swagger WebJar -->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>swagger-ui</artifactId>
            <version>2.0.24</version>
        </dependency>
</dependencies>

корень-контекст.в XML

<mvc:annotation-driven/>
<beans:bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />

Я развертывать мое приложение в Tomcat 8.0. Я могу видеть данные Swagger JSON в URI:

http://localhost:8080/myapp/api-docs

но я не могу запустить Swagger UI. Что еще я должен сделать, чтобы запустить Swagger UI в моем проекте?

2 ответов


трюк в том, что ваша зависимость swagger-ui maven является webjar. Вам нужно настроить путь от веб-сервера к webjar.

я использовал текущую зависимость maven:

<dependency>
   <groupId>org.webjars</groupId>
   <artifactId>swagger-ui</artifactId>
   <version>2.1.3</version>
</dependency>

и настроил его с аннотациями:

@Configuration
@EnableWebMvc
public class RestConfiguration extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
       registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/swagger-ui/2.1.3/");
    }
// [...]
}

то же самое можно сделать с xml в вашей весенней конфигурации:

<mvc:resources mapping="/swagger-ui/**" location="classpath:/META-INF/resources/webjars/swagger-ui/2.1.3/"/>

Также см.:http://www.jamesward.com/2012/04/30/webjars-in-spring-mvc


я решил свою проблему, добавив ресурсы swagger-ui в

src\main\webapp\docs

Я также добавил

<mvc:default-servlet-handler/>

В пом.в XML

Теперь я могу получить доступ к swagger UI под:

http://localhost:8080/myapp/docs/