springboot添加swagger2组件
swagger2是一个可以构建和调试RESTful API文档的组件,利用swagger2的注解可以快速的在项目中构建Api文档,并且提供了测试API的功能
1,引入依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency>
2,配置swagger2
@Configuration @EnableSwagger2 public class Swagger2Configration { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("org.my.security")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Spring Boot添加Swagger2组件") .description("Spring Boot添加Swagger2组件") .version("1.0") .build(); }
}
@configration 标识这是一个配置类
@EnableSwagger2开启swagger2
apis表示swagger需要扫描的包
PathSelectors.any()表示路径选择器匹配所有路径
apiInfo() swagger页面上的一些展示信息
3,swagger常用注释
@Api() 用于类;表示标识这个类是swagger的资源
tags–表示说明
value–也是说明,可以使用tags替代
@ApiOperation() 用于方法;表示一个http请求的操作
value用于方法描述
notes用于提示内容
@ApiParam() 用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)
name–参数名
value–参数说明
required–是否必填
@ApiModel()用于类 ;表示对类进行说明,用于参数用实体类接收
value–表示对象名
@ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改
value–字段说明
name–重写属性名字
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏
@ApiImplicitParam() 用于方法
表示单独的请求参数
@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam
name–参数ming
value–参数说明
dataType–数据类型
paramType–参数类型
example–举例说明
@ApiIgnore 作用于方法上,使用这个注解swagger将忽略这个接口
4,打个样
@RestController @RequestMapping("user") @Api("用户信息接口") public class UserController { @GetMapping("/{id}") @ApiOperation(value="查询用户", notes="根据id来查询用户") @ApiImplicitParam(name = "id", value = "用户ID") @JsonView(User.UserSimplaView.class) public User getUser(@PathVariable String id){ User user = new User(); user.setUserName("陈明羽"); user.setPassWord("root明羽"); return user; } @GetMapping("/userDetail/{id}") @ApiOperation(value="查询用户详情", notes="根据id来查询用户详情信息") @ApiImplicitParam(name = "id", value = "用户ID") @JsonView(User.UserDetailView.class) public User getUserDetail(@PathVariable String id){ User user = new User(); user.setUserName("陈明羽"); user.setPassWord("root明羽"); return user; } }
//model对象
@ApiModel(value="用户对象")
public class User {
@ApiModelProperty(value="用户名",name="userName")
private String userName;
@ApiModelProperty(value="密码",name="passWord")
private String passWord;
//get(),set()
}
5,swagger文档效果
访问 http://localhost:8080/swagger-ui.html
点击单个接口
6,测试接口
以上图/user/userDetail接口为例
在Parameters那块对应字段的value给填上你想测试的值,然后点 try in out!