• SpringBoot整合knife 4j


    knife 4j

    (1) 简介

    knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名knife4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!

    gitee地址:https://gitee.com/xiaoym/knife4j

    官方文档:https://doc.xiaominfo.com/

    效果演示:http://knife4j.xiaominfo.com/doc.html

    (2) 核心功能

    该UI增强包主要包括两大核心功能:文档说明 和 在线调试

    • 文档说明:根据Swagger的规范说明,详细列出接口文档的说明,包括接口地址、类型、请求示例、请求参数、响应示例、响应参

      数、响应码等信息,使用swagger-bootstrap-ui能根据该文档说明,对该接口的使用情况一目了然。

    • 在线调试:提供在线接口联调的强大功能,自动解析当前接口参数,同时包含表单验证,调用参数可返回接口响应内容、headers、

      Curl请求命令实例、响应时间、响应状态码等信息,帮助开发者在线调试,而不必通过其他测试工具测试接口是否正确,简介、强大。

    • 个性化配置:通过个性化ui配置项,可自定义UI的相关显示信息

    • 离线文档:根据标准规范,生成的在线markdown离线文档,开发者可以进行拷贝生成markdown接口文档,通过其他第三方

      markdown转换工具转换成html或pdf,这样也可以放弃swagger2markdown组件

    • 接口排序:自1.8.5后,ui支持了接口排序功能,例如一个注册功能主要包含了多个步骤,可以根据swagger-bootstrap-ui提供的接口排

      序规则实现接口的排序,step化接口操作,方便其他开发者进行接口对接

    (3) 快速集成

    • 第一步:在heima-leadnews-common模块中的pom.xml文件中引入knife4j的依赖,如下:
    <dependency>
         <groupId>com.github.xiaoymingroupId>
         <artifactId>knife4j-spring-boot-starterartifactId>
    dependency>
    
    • 第二步:创建Swagger配置文件

    heima-leadnews-common模块中新建包package com.heima.common.knife4j

    在此包中新建Swagger的配置文件,代码如下:

    package com.heima.common.knife4j;
    
    import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Import;
    import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
    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;
    
    @Configuration
    @EnableSwagger2
    @EnableKnife4j
    @Import(BeanValidatorPluginsConfiguration.class)
    public class MyKnife4jConfiguration {
    
        @Bean(value = "defaultApi2")
        public Docket defaultApi2() {
            Docket docket=new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    //这里指定Controller扫描包路径
                    .apis(RequestHandlerSelectors.basePackage("com.heima"))
                    .paths(PathSelectors.any())
                    .build();
            return docket;
        }
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("黑马头条API文档")
                    .description("黑马头条API文档")
                    .version("1.0")
                    .build();
        }
    }
    

    以上有两个注解需要特别说明,如下表:

    注解说明
    @EnableSwagger2该注解是Springfox-swagger框架提供的使用Swagger注解,该注解必须加
    @EnableKnife4j该注解是knife4j提供的增强注解,Ui提供了例如动态参数、参数过滤、接口排序等增强功能,如果你想使用这些增强功能就必须加该注解,否则可以不用加
    • 第三步在heima-leadnews-media中开启配置
    package com.heima.media.config;
    
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    // @ComponentScan("com.heima.common.swagger")
    @ComponentScan("com.heima.common.knife4j")
    public class SwaggerConfig {
    }
    
    

    在浏览器输入地址:http://host:port/doc.html

    在这里插入图片描述

    查询频道列表:

    在这里插入图片描述

  • 相关阅读:
    21. Spring Boot 整合 MyBatis
    真机环境配置教程
    c++ 经典服务器开源项目 Tinywebserver的使用与配置(百度智能云服务器安装ubuntu18.04可用公网ip访问)
    Ubuntu系统之管理文件权限一
    MATLAB改变默认工作路径
    AD20绘制电路板的外形
    如何修改X12端口的ControlNumber?
    一种简单的数据库性能测试方法
    jedis连接redis
    初始化IMU
  • 原文地址:https://blog.csdn.net/weixin_50707328/article/details/127113610