swagger – 没有API的空列表

我试图使用swagger来记录我的Rest API。 我正在开发一个Tomcat / Spring服务器,其余的apis是使用Jersey开发的。

我按照招摇指南并将所需数据添加到我的web.xml:

 resources com.sun.jersey.spi.container.servlet.ServletContainer  com.sun.jersey.config.property.packages com.wordnik.swagger.jersey.listing;app.servlet.resources.jersey;org.codehaus.jackson.jaxrs   swagger.api.basepath http://localhost:8080/main/resources/   api.version 1  1  

http://:8080 / main / resources / api-docs返回以下内容:

 {"apiVersion":"0.0","swaggerVersion":"1.2"} 

知道我在这里什么?

尝试将以下内容添加到“web.xml”中(确保定义相应的servlet-class位置):

  Bootstrap com.mywebservice.utils.swagger.Bootstrap 1   ApiOriginFilter com.mywebservice.utils.swagger.ApiOriginFilter   ApiOriginFilter /*  

并确保你有“Bootstrap”,“ApiOriginFilter”,“ApiListingResource”以及“ApiListingResourceJSON”(扩展了ApiListing)。 请参阅以下这些文件的示例:

引导:

 /** * Copyright 2012 Wordnik, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ import com.wordnik.swagger.jaxrs.JaxrsApiReader; import javax.servlet.http.HttpServlet; public class Bootstrap extends HttpServlet{ private static final long serialVersionUID = 1L; static{ JaxrsApiReader.setFormatString(""); } } 

ApiOriginFilter:

 import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; public class ApiOriginFilter implements javax.servlet.Filter{ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{ HttpServletResponse res = (HttpServletResponse) response; res.addHeader("Access-Control-Allow-Origin", "*"); res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); res.addHeader("Access-Control-Allow-Headers", "Content-Type"); chain.doFilter(request, response); } @Override public void destroy(){ } @Override public void init(FilterConfig filterConfig) throws ServletException{ } } 

ApiListingResource:

 import javax.ws.rs.Path; import javax.ws.rs.Produces; import com.wordnik.swagger.annotations.Api; import com.wordnik.swagger.jaxrs.JavaApiListing; @Path("/resources.json") @Api("/resources") @Produces({ "application/json"}) public class ApiListingResource extends JavaApiListing{ } 

ApiListingResourceJSON:

 import javax.ws.rs.Path; import javax.ws.rs.Produces; import com.wordnik.swagger.annotations.Api; import com.wordnik.swagger.jaxrs.listing.ApiListing; @Path("/api-docs") @Api("/api-docs") @Produces({ "application/json"}) public class ApiListingResourceJSON extends ApiListing{ } 

这应该是…… Swagger非常好,一旦你设置它“只是工作”,但要设置它需要做一些体操仍然。

HTH。