2014-11-25 24 views
7

Benim yapılandırma aşağıdaki gibidir:Swagger UI nasıl etkinleştirilir? Tomcat, SpringMVC, DİNLENME

pom.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> 

kök context.xml

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

Tomcat 8.0 içine başvurumu dağıtın. Ben URI'sında Swagger JSON verilerini görebilir duyuyorum:

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

Ama Swagger UI çalıştıramazsınız. Swagger UI'yi projemde çalıştırmak için daha ne yapmalıyım?

:
+0

Uygulamanızın bağlam kökünü denediniz mi? TTP: // localhost: 8080/myap? veya ttp: // localhost: 8080/myapp/index.html? – Ron

+0

Bir demo uyguladı, ancak webjar kullanmamıştım (UI kaynaklarını kopyaladım). Buradan kontrol edebilirsiniz: https://github.com/jxc876/boot-swagger-demo Umarım yardımcı olur. –

+0

'src \ main \ webapp \ WEB-INF' altında' Web.xml' yapılandırma dosyasıyla birlikte Spring Web uygulamasına sahibim. Swagger-ui kaynaklarını 'src \ main \ webapp \ docs' içine koydum. Ayrıca bu içeriği sunmak için web.xml'ye ne eklemeliyim? Http: // localhost: 8080/myapp/'altında web uygulamam var. Ben swagger UI – dmydlarz

cevap

1

ben de ben altında dayı kullanıcı arayüzüne erişebilirsiniz Şimdi

pom.xml için

<mvc:default-servlet-handler/> 

eklendi

src\main\webapp\docs 

için dayı-ui kaynaklar ekleyerek benim sorun çözüldü

http://localhost:8080/myapp/docs/ 
+0

Dosyaları swagger-ui/dist'ten kopyalarsam sadece evcil hayvan örneğini görüyorum. Web servisimin json'unu kullanmak için swagger-ui nasıl alınır? – Cengiz

+0

Örnekte gösterildiği gibi swagger'ı etkinleştirdiniz mi? https://github.com/jxc876/boot-swagger-demo/blob/master/src/main/java/com/mramirez/App.java – dmydlarz

+0

"src \ main'a swagger-ui kaynakları ekleyerek" ne demek istiyorsunuz? \ webapp \ docs' "? Tam olarak ne yaptın? –

3

Hile senin havalı-ui maven bağımlılığının bir webjar olduğunu. Web sunucunuzdan webjar'a giden yolu yapılandırmanız gerekir.

Ben şimdiki maven bağımlılığı kullandı:

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

Ve ek açıklamalarla bunu yapılandırılmış:

@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/"); 
    } 
// [...] 
} 

aynı bahar yapılandırmasında xml ile birlikte yapılabilir :

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

Ayrıca bakınız: http://www.jamesward.com/2012/04/30/webjars-in-spring-mvc