Swagger配置(SpringMVC、SpringBoot)

本文介绍了如何使用Swagger2与SpringMVC和SpringBoot集成,以自动化生成RESTful API文档并提供测试功能。通过添加Swagger注解,配置类和依赖,可以简化文档维护并方便接口调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 什么是Swagger

对于大多数开发者而言,构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端。

 这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发、Android开发或是Web开发等。为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题:

 由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量地创建这份文档本身就是件非常吃力的事,下游的抱怨声不绝于耳。

 随着时间推移,不断修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致不一致现象。

 为了解决上面这样的问题,本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot以及SpringMVC中,并与程序配合组织出强大RESTful API文档

 Swagger的功能:

 既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。

 Swagger提供了强大的页面测试功能来调试每个RESTful API。

 



2. Swagger与SpringMVC集成

1)加入maven依赖项

<!-- swagger-springmvc -->
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-models</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>com.wordnik</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.3.11</version>
</dependency>
<!-- swagger-springmvc dependencies -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>15.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
<version>1.1.0</version>
</dependency>

本文中使用的Spring版本为Spring4.2.5以及Swagger1,理论上Swagger支持Spring3.x以上版本

2)在接口类以及接口方法增加Swagger注解

@api,用在类上,用于解释整个类

 @apiOperation,用于方法上,value是笼统的介绍方法作用,notes是详细的说明方法作用,httpMethod代表请求方式,response表示返回类型

@ApiParam用于解释请求的参数,required表示是否为必须参数,name对应参数名,value代表对参数的解释

如果想对方法返回类型进一步说明可以用

@ApiModel,用于标注整个模型类

@ApiModelProperty(value = "描述", required = true),用于标注模型类的成员变量

3)增加Swagger配置类

配置类中,通过includePtterns能使用正则表达式对访问的方法进行拦截,比如本文中对包含push的路径进行拦截,并根据注解生成文档信息。此外,通过配置ApiInfo类的参数,可以对生成的文档页面添加标题、描述、开发者邮箱等信息。

对于SpringSwaggerConfig类,需要在Spring配置文件中进行注入:

4)添加Swagger-ui

Swagger生成文档的原理为用户访问swagger-ui生成页,页面中通过ajax访问后台的 http://{domainName}:{prot}/api-docs获得json数据,并展示到Swagger-ui页面中。

本文在webapp目录中添加Swagger-ui的html、css以及js文件,由于官网的文件并不能正确的显示json信息,请下载swagger-ui.rar

修改文件中index.html中的url:

5)添加Spring配置信息

 

允许直接访问Swagger-ui的静态资源,并且扫描controller包下添加swagger注解的的类


3. Swagger与SpringBoot集成

直接参照http://blog.didispace.com/springbootswagger2/即可


4. Swagger展示

访问http://{domainname}/index.html,即可查看包括:请求方式(Post,Get,Delete,Put);请求路径;路径说明等信息

点击任意一接口,可以查看参数说明、参数类型、返回数据说明等信息;此外可以填写参数的值,点击试一下可以模拟进行请求,替代了postman的功能




更多功能请参考官方文档:http://swagger.io/

官方github:https://github.com/springfox/springfox/blob/v1.0.2/README.md

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值