我正在寻找一款工具,可以帮助我生成RESTful API文档。我的服务器是使用Java编写的,并使用Spring MVC框架。我的服务器中没有视图,它是一个完全的RESTful服务,其功能就是接收JSON并输出JSON。
我想知道Swagger是否与Spring注释兼容?
目前尚未有Spring MVC Swagger模块可用(至少从Wordnik没有),但总体上,在基于JVM的REST服务上启用Swagger相当简单。
Swagger服务器支持分为两部分-核心服务器和与REST服务的集成。请参见Swagger github repo。Swagger核心定义表示REST服务、参数、允许值、HTTP操作等的文档。服务器集成将此文档与REST框架的结构连接起来。Wordnik使用JAX-RS的Jersey并发布swagger-jaxrs来执行此集成。还有一个Swagger-Play模块,即将发布到Play模块存储库中。
如果要在其他REST框架(如Spring MVC)上启用Swagger,则应按照以下步骤操作:
1)生成API Reader以生成com.wordnik.swagger.core.Documentation对象。请参见JAX-RS版本以及play版本。
2)创建一个REST端点,该端点向客户端返回Documentation对象的JSON/XML版本。同样,JAX-RS和play也有实现。
3)添加一个过滤器来拦截请求以执行资源或对象级别的访问控制。
因此,总之,这可以相当容易地组合在一起。
另一种Spring MVC的Swagger实现是swagger4spring-web。
它类似于Swagger-SpringMVC,支持所有Swagger注解,并为返回类型和参数生成JSON schema。它也可以在没有Swagger注解的情况下工作。
Swagger 2.0 是最新的 Swagger 版本。
现在有不同版本的 Swagger 可供不同需求使用。
io.swagger
是 Swagger 库的包,您需要单独的 Spring JAR 包来与 Spring 配合使用。这是 Swagger 的第二个版本。
io.springfox
是 Springfox Swagger2,其中 swagger 已经与 Spring 集成。
com.mangofactory
是与 Spring Web MVC 框架集成的 swagger。