1. 引入pom
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
2. 配置文件
@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//swagger要扫描的controller包
.apis(RequestHandlerSelectors.basePackage("com.liu.product.controller"))
.paths(PathSelectors.any())
.build();
}
protected ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Swagger2构建product接口文档RESTful APIs")
.description("product接口文档")
.version("1.0.0")
.build();
}
}
解释:
apiInfo()的方法说明:
-
title:接口文档的标题
-
description:接口文档的详细描述
-
termsOfServiceUrl:一般用于存放公司的地址
-
version:API文档版本号
-
contact:维护人、维护人URL以及email
-
license:许可证
-
licenseUrl:许可证URL
3. swagger使用
@RestController
@Api(description= "边缘服务器接口")
public class ccController {
@Autowired
HostService hostServiceImpl;
/**
* 接收边缘服务器运行情况的所有数据
* @param hostVo
* @return
*/
@ApiOperation("接收服务器所有数据")
@PostMapping("/server")
public Boolean Insert(@ApiParam(value = "服务器接收的数据对象") @RequestBody @Valid HostVo hostVo) {
return hostServiceImpl.insetHost(hostVo);
}
/**
* 查询某台边缘服务器的运行数据
* @param hostName
* @return
*/
@ApiOperation("查询某台服务器所有数据")
@GetMapping("/server/{hostName}")
public HostVo query(@ApiParam("服务器名称") @PathVariable String hostName) {
return hostServiceImpl.queryHostByHostName(hostName);
}
}
解释:
-
@ApiModel 注解描述swagger(Controller)返回的实体 (在实体类中使用)
-
@ApiModelProperty 描述实体的属性(在实体类中使用)
-
@Api 作用到Controller上 用来说明此接口
-
value 定于当前接口的名称
-
description 用于定义当前接口文档的介绍
-
tag 可以使用多个名称来定义文档,如果tag和value同时存在,value失效
-
hidden 如果值为true,就会隐藏文档
-
-
ApiOperation 用在接口文档的方法上,主要用来注解接口
-
value 对api的简短描述
-
note api的有关细节描述
-
esponse 接口的返回值类型(不是返回实际响应,而实返回对象的实际结果)
-
hidden 如果为true,就会在文档中隐藏
-
-
ApiParam 用于接口方法的参数
-
name 参数的名称
-
value 参数值
-
required 为true 为必传
-
defaultValue 参数的默认值
-
type 参数类型
-
hidden true 隐藏
-
4. swagger访问地址
http://ip:port/swagger-ui.html#/
ip:IP地址
port:端口号