Spring Swagger2
- 这部分是用来完成动态的生成前后端的API接口文档,保证开发高效
1. pom.xml的依赖
1 2 3 4 5 6 7 8 9 10
| <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>
|
1.1. 添加配置类
- 我们建立swaggerConfig类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket customDocket() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("包名")) .paths(PathSelectors.any()) .build(); }
private ApiInfo apiInfo() { Contact contact = new Contact("团队名", "www.my.com", "my@my.com"); return new ApiInfoBuilder() .title("文档标题") .description("文档描述") .contact(contact) .version("1.1.0") .build(); } }
|
1.2. 使用swagger2注释方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| package ns.mental.advi.controller;
import io.swagger.annotations.*; import ns.mental.advi.entity.UserEntity; import ns.mental.advi.service.impl.UserServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;
@RestController @RequestMapping("/testBoot") public class UserController {
@Autowired private UserServiceImpl userService;
@ApiOperation(value = "查询用户", response = UserEntity.class, httpMethod = "GET" ,notes = "返回一个User对象") @RequestMapping("getUser/{id}") public String GetUser(@PathVariable int id){ return userService.SelectByID(id).toString(); } }
|
1.2.1. @Api
- 用于注解类,标识这个类为Swagger的资源
- 常用的参数有Value 和 Tags,都是说明的作用,但是value可以用Tags替代,当有多个Tags的时候会生成多个list
1.2.2. @ApiOperation()
- 用于注解方法
- 常用的参数有value(描述方法),notes(提示内容),response(返回对象),httpMethod(具体是什么请求)
1.2.3. @ApiParam()
- 用于方法参数等的说明,表示对参数的添加元数据,不用的话会自动检索代码中的信息
- name(参数名),value(参数说明),required(是否必填)
1.2.4. @ApiModel()
- 用于类;表示对类进行说明,用于参数用实体类接收
- value(表示对象名),description(描述),都可省略
1.2.5. @ApiModelProperty()
- 用于方法,字段; 表示对model属性的说明或者数据操作更改
- value(字段说明),name(重写属性名字),dataType(重写属性类型),required(是否必填),example(举例说明),hidden(隐藏)
1.2.6. @ApiImplicitParam()
用于方法表示单独的请求参数
1.2.7. @ApiImplicitParams()
- 用于方法,包含多个 @ApiImplicitParam
- name(参数名字),value(参数说明),dataType(数据类型) ,paramType(参数类型) ,example(举例说明)
1.3. 查看API
http://localhost:8080/swagger-ui.html