在后端开发中,代码写完了,发现还要写文档,有没有感觉很绝望!
在这种情况持续多年之后,swagger横空出世,把程序员从各种文档中解救出来,真香!
一、要使用swagger首先需要引入相关依赖
<!-- Swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency>
二、在启动类开启swagger
@EnableSwagger2 @SpringBootApplication public class BigApplication { public static void main(String[] args) { SpringApplication.run(BigApplication.class, args); } }
三、在controller类使用swagger注解
@Api(tags = "XX服务") public class CSController{ @ApiOperation("来电总数") @GetMapping(value = "callDs") public JSONObject callDs() { return null; } }
四、在接口方法中使用swagger
@GetMapping(value = "trend") @ApiOperation("趋势") @ApiImplicitParam(name="timeType",value = "0=当日,1=当月",dataType = "Integer") public TrendVO trend(@RequestParam Integer timeType) { return null; } //@ApiImplicitParam可以指定参数的类型、含义和取值范围
五、在实体类使用swagger
public class Trend { @ApiModelProperty("日期") private String date; @ApiModelProperty("项目数") private String projectNum; }
四、打开web浏览器
https://localhost:8080/swagger-ui.html
五、相关注解
@Api 对整个控制层的设置 可以设置tags,tags为数组类型,设置多个会在页面中显示多个控制层
@ApiIgnore 用来排除不需要的接口信息
@ApiOperation 给方法添加描述和提示信息 ,其value 属性必须有值
@ApiParam @ApiImplicitParams,@ApiImplicitParam注解来给参数增加说明
@ApiModel和@ApiModelProperty主要是作用到实体类上当接口中有一个方法的返回值为该对象时就会在文档的model中显示该类的信息