2016-05-05 20 views
0

Ich habe ein Rest API-Projekt und ich versuche, Swagger zu Dokumentation und UI zu verwenden. Ich war in der Lage, die Dokumentation zu bekommen, aber UI sieht keine API-Dokumentation und hält leer. Ich habe den Inhalt des Verzeichnisses dist unter webapps/WEB-INF kopiert. Ich kann auf die Dokumentation zugreifen mit: http://localhost:8080/ml-api-ws/v2/api-docs Ich habe versucht, die URL in index.html zu ändern, um auf diese Dokumentation zu zeigen, aber Swagger zieht leer.Swagger UI funktioniert nicht Rest APi

webapps/WEB-INF:

enter image description here

Blank Swagger:

enter image description here index.html:

<script type="text/javascript"> 
    $(function() { 
     var url = window.location.search.match(/url=([^&]+)/); 
     if (url && url.length > 1) { 
     url = decodeURIComponent(url[1]); 
     } else { 
     //url = "http://petstore.swagger.io/v2/swagger.json"; 
     url = "http://localhost:8080/ml-api-ws/v2/api-docs"; 
     } 

pom.xml

<!-- SpringFox Dependency For Swagger --> 
<dependency> 
    <groupId>io.springfox</groupId> 
    <artifactId>springfox-swagger2</artifactId> 
    <version>2.4.0</version> 
</dependency> 
<!-- Swagger UI Depedency --> 
<dependency> 
    <groupId>io.springfox</groupId> 
    <artifactId>springfox-swagger-ui</artifactId> 
    <version>2.0.2</version> 
</dependency> 

servlet.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-4.0.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> 

<context:annotation-config/> 
    <context:component-scan base-package="com.epsilon.al.ml.controller" /> 

<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/> 
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/webjars/"/> 
<mvc:default-servlet-handler/> 
    <mvc:annotation-driven /> 
    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
     <value>/WEB-INF/jsp/</value>  
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 

<bean id="swagger2Config" class = "springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration" /> 
    <!-- <bean name="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver" 
     /> <bean name="jsonTemplate" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" 
     /> --> 
</beans> 

Web.xml:

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <display-name>MlApi</display-name> 

    <context-param> 
     <param-name>contextConfigLocation</param-name>  
     <param-value>classpath:*-context.xml</param-value> 
    </context-param> 

    <!-- Creates the Spring Container shared by all Servlets and Filters --> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <servlet> 
     <servlet-name>ml-rest-api</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>ml-rest-api</servlet-name> 
     <!-- <url-pattern>/ml-api-ws/*</url-pattern> --> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

<!-- <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> --> 
     <welcome-file-list> 
     <welcome-file>/WEB-INF/index.html</welcome-file> 
    </welcome-file-list> 
</web-app> 

ich versuchte auch, die die api-Dokumentation in .json Datei zu speichern und mit Prahlerei-ui erkunden aber die Seite tun nichts.

Danke !!

Antwort

2

Ich konnte dies lösen, aber einen Ordner unter Webapps erstellen und Inhalt des Dist-Ordners in diesem verschieben. Sobald ich dies hatte, fügte ich dann Mapping für index.html in servlet.xml hinzu und konnte auf die APIs zugreifen.

+0

Konnten Sie die API-Dokumentation in .json speichern? – RCR

+0

Ich konnte auf den JSON mit der URL zugreifen, die meinen Bedürfnissen entsprach. – Ani

Verwandte Themen