Live2D

后端整合 Swagger + Knife4j

引入Swagger 步骤

  1. 引入依赖(Swagger 或 Knife4j:官方文档https://doc.xiaominfo.com/knife4j/documentation/get_start.html

    <!--引入Knife4j的官方start包,Swagger2基于Springfox2.10.5项目-->
    <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <!--使用Swagger2-->
        <artifactId>knife4j-spring-boot-starter</artifactId>
        <version>2.0.9</version>
    </dependency>

     

  2. 自定义 Swagger 配置类

    复制代码
    /**
     * 自定义Swagger 接口文档的配置
     */
    @Configuration
    @EnableSwagger2WebMvc
    public class SwaggerConfig {
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    //为当前包路径,控制器类包(这里一定要标注你的控制器位置)
                    .apis(RequestHandlerSelectors.basePackage("com.xxx.usercenter.controller"))
                    .paths(PathSelectors.any())
                    .build();
        }
        //构建 api文档的详细信息函数,注意这里的注解引用的是哪个
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    //页面标题
                    .title("xxxx系统")
                    //创建人
                    .contact(new Contact("golo", "http://www.baidu.com", "1111111111@qq.com"))
                    //版本号
                    .version("1.0")
                    //描述
                    .description("统一身份认证系统接口文档")
                    .build();
        }
    }
    复制代码

     

  3. 定义需要生成接口文档的代码位置(Controller)

  4. 启动即可(访问http://localhost:8080/doc.html)

  5. 可以通过在 controller 方法上添加 @Api、@ApiImplicitParam(name = "name",value = "姓名",required = true) @ApiOperation(value = "向客人问好") 等注解来自定义生成的接口描述信息

 

避坑避坑!!!

  • 如果开发者使用的是Knife4j 2.x版本,并且Spring Boot版本高于2.4,那么需要在Spring Boot的yml文件中做如下配置:

    spring:
      mvc:
        pathmatch:
          matching-strategy: ANT_PATH_MATCHER

     

  • 千万注意:线上环境不要把接口暴露出去(如果别人知道你的swagger地址可以直接调试接口甚至拿到一些不应拿的数据)!!!可以通过在 SwaggerConfig 配置文件开头加上 @Profile({"dev", "test"}) 限定配置仅在部分环境开启

    也可在生成环境yml配置文件中加上配置:

    knife4j:
      # 开启增强配置 
      enable: true
     # 开启生产环境屏蔽
      production: true

    production: true时就访问不了swagger了

    测试环境改成 production: false

  • 如果有拦截器,请放行以下地址:

    复制代码
        /**
         * 放行Swagger
         */
        public static final String[] SWAGGER_WHITELIST = {
                "/swagger-ui.html/**",
                "/swagger-ui/**",
                "/swagger-resources/**",
                "/v2/api-docs",
                "/v3/api-docs",
                "/v3/api-docs/swagger-config",
                "/webjars/**",
                "/doc.html",
        };
    复制代码

 

相关链接

Knife4j官网链接:https://doc.xiaominfo.com/docs/quick-start

转载至:

https://blog.csdn.net/qq_42495847/article/details/121424389

https://blog.csdn.net/weixin_52914457/article/details/120999070

posted @   都是朕的江山  阅读(286)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
返回顶端
点击右上角即可分享
微信分享提示