SpringBoot整合整合Knife4j插件

SpringBoot整合Knife4j

    • 简单介绍
    • 相关依赖
    • 加入配置类
    • 编写测试
      • 参考链接

简单介绍

knife4j是一种前端UI的增强解决方案,对比swagger相比有以下优势,友好界面,离线文档,接口排序,安全控制,在线调试,文档清晰,注解增强,容易上手。

相关依赖


  <dependency>
      <groupId>com.github.xiaoymingroupId>
      <artifactId>knife4j-spring-boot-starterartifactId>
      <version>3.0.3version>
  dependency>
  
	<dependency>
	    <groupId>javax.validationgroupId>
	    <artifactId>validation-apiartifactId>
	    <version>2.0.1.Finalversion>
	dependency>

加入配置类

@Configuration
public class SwaggerConfig
{
    /**
     * 创建API
     */
    @Bean
    public Docket createRestApi()
    {
        return new Docket(DocumentationType.OAS_30)
                // 是否启用Swagger
                .enable(true)
                // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
                .apiInfo(apiInfo())
                // 设置哪些接口暴露给Swagger展示
                .select()
                // 扫描所有有注解的api,用这种方式更灵活
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                // 扫描指定包中的swagger注解
                .apis(RequestHandlerSelectors.basePackage("cn.isprts.controller"))
                // 扫描所有 .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
                /* 设置安全模式,swagger可以设置访问token */
                // 统一请求前缀
                //.pathMapping();
    }

    /**
     * 添加摘要信息
     */
    private ApiInfo apiInfo()
    {
        // 用ApiInfoBuilder进行定制
        return new ApiInfoBuilder()
                // 设置标题
                .title("xxx接口文档")
                // 描述
                .description("描述:用于管理xx的接口信息,具体包括XXX,XXX模块...")
                // 作者信息
                .contact(new Contact("xxx", null, null))
                // 版本
                .version("版本号:v1" )
                .build();
    }
}

编写测试

@RestController
@Api(value = "/user",tags = {"获取相关参数"})
@RequestMapping("/user/v1/info")
public class ComUserInfoController {

    /**
     * 简单信息获取
     * @param id
     * @return
     */
    @ApiOperation("获取基本信息")
    @GetMapping("/getInfo")
    public AjaxResult getInfo(Integer id) {
        return AjaxResult.me().setMessage("成功");
    }
}

访问:http://ip:port/doc.html
SpringBoot整合整合Knife4j插件_第1张图片

参考链接

https://blog.csdn.net/m0_52462015/article/details/120952625
http://doc.ruoyi.vip/ruoyi-vue/document/cjjc.html#%E9%9B%86%E6%88%90knife4j%E5%AE%9E%E7%8E%B0swagger%E6%96%87%E6%A1%A3%E5%A2%9E%E5%BC%BA

你可能感兴趣的:(spring,boot,java,后端)