● knife4j是一个集 Swagger2和PoenApi为一体的增强解决方案
- 导入依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
- 编写相关配置类
package com.feiyu.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
import java.util.ArrayList;
import java.util.List;
/**
* Created with IntelliJ IDEA.
*
* @Author: KeYu
* @Package: com.feiyu.common.config
* @Date: 2023/05/16/21:45
* @说明:knife4j配置信息
*/
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {
@Bean
public Docket adminApiConfig(){
List<Parameter> pars = new ArrayList<>();
ParameterBuilder tokenPar = new ParameterBuilder();
tokenPar.name("token")
.description("用户token")
.defaultValue("")
.modelRef(new ModelRef("string"))
.parameterType("header")
.required(false)
.build();
pars.add(tokenPar.build());
//添加head参数end
Docket adminApi = new Docket(DocumentationType.SWAGGER_2)
.groupName("adminApi")
.apiInfo(adminApiInfo())
.select()
//只显示admin路径下的页面
.apis(RequestHandlerSelectors.basePackage("com.feiyu"))
.paths(PathSelectors.regex("/admin/.*"))
.build()
.globalOperationParameters(pars);
return adminApi;
}
private ApiInfo adminApiInfo(){
return new ApiInfoBuilder()
.title("后台管理系统-API文档")
.description("本文档描述了后台管理系统微服务接口定义")
.version("1.0")
.contact(new Contact("keyu", "http://www.fkclass.top", "3111688230@qq.com"))
.build();
}
}
- Controller层添加注解
a. 方便查看
package com.feiyu.auth.controller;
import com.feiyu.auth.service.SysRoleService;
import com.feiyu.model.system.SysRole;
import com.feiyu.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Created with IntelliJ IDEA.
*
* @Author: KeYu
* @Package: com.feiyu.auth.controller
* @Date: 2023/05/16/20:56
* @说明:
*/
@Api("角色管理")
@RestController
@RequestMapping("/admin/system/stsRole")
public class SysRoleController {
@Autowired
private SysRoleService sysRoleService;
@ApiOperation("查询所有角色")
@GetMapping("/findAll")
public Result findAll(){
List<SysRole> list = sysRoleService.list();
return Result.success(list);
}
}
- 测试
浏览器访问:http://localhost:8081/doc.html
- SpringBoot knife4j knife4 knife 4jspringboot knife4j knife4 knife springboot knife4j swagger knife4 springboot接口knife4j文档 springboot knife4j日记knife4 springboot3 springboot swagger knife4j springboot swagger knife4j版本 knife4j springboot swagger3 knife4j swagger 接口knife4j文档knife4 knife4j knife4 knife 4j