近期参加了“全球微服务架构高峰论坛”,从中了解到Swagger、Spring Cloud等利器。
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。这也是现下最为流行的一个API文档框架。
于是想把Swagger整合到现有的框架中去。但是百度了一圈发现网上的文章千篇一律,都是基于注解来配置的,没有基于xml配置的。考虑到项目整合风格的统一性,还是选择使用xml配置。稍微研究了一下,现在共享出来。
第一步:在pom.xml中添加相应的依赖
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>0.5.2</version>
</dependency>
第二步:在spring mvc配置文件中添加者两段
<!-- swagger配置 -->
<bean id="documentationConfig" class="com.mangofactory.swagger.configuration.DocumentationConfig"/>
<context:property-placeholder location="classpath:cro.properties" />
第三步:在cro.properties文件中添加以下两行
documentation.services.basePath=http://localhost:8080/cro
documentation.services.version=1.0
第四步:将swagger-ui对应版本下载下来,放入到webapps目录
https://github.com/swagger-api/swagger-ui/tree/master/dist
第五步:
启动项目。访问:http://HOST:PORT/项目名称/index.html
效果:
参考:https://github.com/ufasoli/spring-mvc-swagger-tutorial
注意:
该版本稍微有点老了。建议使用新版本。注解基本没变,但是注解所在的包变了。
该版本的swagger所使用的package是com.wordnik,例如:
import com.wordnik.swagger.annotations.ApiOperation;
import com.wordnik.swagger.annotations.ApiParam;
而新版本的是io.swagger
swagger 1.5.9与spring mvc的集成请阅读:http://my.oschina.net/eacdy/blog/734735