使用swagger或任何其他工具生成Rest API文档
我正在寻找一种方法来记录我的Rest API。 我的服务器是Tomcat / Spring服务器,Rest API是使用Jenkins实现的。
Swagger似乎是一个非常酷的解决方案,但我无法弄清楚我如何使用它与我的代码。 我正在寻找创建json swagger-ui可以读取的最好方法 – 我该怎么做?
此外,我很乐意检查在此类环境中记录Rest API的任何其他好的解决方案。
我没有试过招摇,但你可以试着说。 它可以生成JAX-RS端点的文档,作为javadoc阶段的一部分。 有关生成文档的一些示例可在enunciate页面上找到
更新
项目已移至http://enunciate.webcohesion.com/ ,即将推出的2.0版将支持java 8。
要启用swagger-ui,您可以“按原样”使用它 – 来自文档:
“您可以使用swagger-ui代码AS-IS!无需构建或重新编译 – 只需克隆此repo并使用dist文件夹中的预构建文件。如果您喜欢swagger-ui as-is,请停在此处。 “
因此,基本上您只需要在Web服务器中放置“dist”内容,然后在UI中输入Web服务的swagger端点,例如: http://localhost:8080/Webservice/api-doc.json
(这是您必须在web.xml中定义的相同地址端点)。
我怀疑你有一些错误配置的其他细节,这很容易,因为有几个地方你必须配置Swagger。 在下文中,我将向您介绍我在Swagger中设置的一些细节。
这是我的web.xml上Swagger配置的片段:
web service com.sun.jersey.spi.container.servlet.ServletContainer com.sun.jersey.config.property.packages com.mywebservice;com.wordnik.swagger.jaxrs.listing;com.fasterxml.jackson.jaxrs com.sun.jersey.config.property.classnames com.mywebservice;com.wordnik.swagger.jaxrs.listing;com.fasterxml.jackson.jaxrs swagger.api.basepath http://localhost:8080/Webservice api.version 0.0.2 1 Bootstrap com.mywebservice.utils.swagger.Bootstrap 1 ApiOriginFilter com.mywebservice.utils.swagger.ApiOriginFilter ApiOriginFilter /*
Bellow是com.mywebservice.utils.swagger
包的列表,其中有几个资源,如Swagger文档中所示(现在看起来与我设置时不同,所以这里是完整的文档列表) :
您可以在Swagger的示例项目中找到这些文件(或示例): https : //github.com/wordnik/swagger-core/tree/master/samples/java-jaxrs ,您应该尝试将其用作“模板” “设置你的招摇。 我遇到麻烦的一个文件是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{ }
HTH。
如果你正在使用JAX-RS和maven,你也可以考虑尝试使用MireDot ,这非常容易设置。