文章目录

  • ​​1、在pom中导入依赖​​
  • ​​2、编写swagger配置类​​
  • ​​3、编写接口文档​​
  • ​​2、使用knife4j美化swagger​​

1、在pom中导入依赖

<!--        swagger实现接口文档-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>

<!-- swagger-ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>

2、编写swagger配置类

package com.zheng.yu;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
* 放在与application.java同级目录下
* @Configuration 让spring来加载该类配置
* @EnableSwagger2 来启用Swagger2
*/

@Configuration
@EnableSwagger2
public class Swagger2 {

@Bean
public Docket createRestApi() {

/**
* 创建API应用
* apiInfo()增加API相关信息
* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴漏给Swagger来展现
* 本例采用指定扫描的包路径来定义指定要建立API的目录
*/

return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.zheng.yu.controller"))
.paths(PathSelectors.any()) // 可以根据url路径设置哪些请求加入文档,忽略哪些请求
.build();
}

/**
*创建该API的基本信息(基本信息展示在文档页面中)
* 访问地址:http://项目实际地址/swagger-ui.html
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("红灯笼网上汽车租赁系统") //设置文档的标题
.description("红灯笼网上汽车租赁系统的接口设计") // 设置文档的描述
.version("1.0.0") // 设置文档的版本信息-> 1.0.0 Version information
.termsOfServiceUrl("http://8282/") // 设置文档的License信息->1.3 License information
.build();
}
}
  • @Configuration 让spring来加载该类配置
  • @EnableSwagger2 来启用Swagger2
  • apiInfo()增加API相关信息
  • 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴漏给Swagger来展现
  • apis(RequestHandlerSelectors.basePackage(“com.zheng.yu.controller”))配置包扫描路径。swagger会扫描包下所有Controller定义的API,产生文档内容,如果不想生成API,则使用注解@Apilgnore

3、编写接口文档

//登录
@ApiOperation(value = "用户登录系统")
@ApiImplicitParam(name="user" ,value = "登录用户的信息")
@PostMapping("/login")
public Map<String,Object> save(@RequestBody User user){

HashMap map = new HashMap();
HashMap map1 = new HashMap();
map.put("name",user.getName());
map.put("password",user.getPassword());
User user1= userService.login(map);
map1.put("user",user1);
map1.put("success","success");
return map1;


}

@ApiOperation(value = "查询所有用户",notes = "查询所有的用户")
// @ApiImplicitParam(name = "word", value = "单词", paramType = "query", required = true, dataType = "String")
@GetMapping("/alluser")
public List<User> findAll(){
return userService.userList();
}
  • @APi:描述类/接口的主要用途
  • @ApiOperation:描述方法用途,给API增加说明
  • @ApiImplicitParam:描述方法的参数,给参数增加说明
  • @ApiImplicitParams:描述方法的参数(Multi-Params),给参数增加说明

  • @Apilgnore:忽略某类/方法/参数的文档。
  • springboot集成swagger_接口文档


  • springboot集成swagger_spring_02


  • springboot集成swagger_spring_03

2、使用knife4j美化swagger

​https://doc.xiaominfo.com/​

在pom文件中加入

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>

访问的形式:

springboot集成swagger_接口文档_04

springboot集成swagger_接口文档_05


springboot集成swagger_java_06