当前位置: 首页 > article >正文

后端整合Swagger+Knife4j接口文档

后端整合Swagger+Knife4j接口文档

接口文档介绍

  1. 什么是接口文档:写接口信息的文档,条接口包括:
    • 请求参数
    • 响应参数
      • 错误码
    • 接口地址
    • 接口名称
    • 请求类型
    • 请求格式
    • 备注
  2. 为什么需要接口文档
    • who用?后端提供,前后端都需要使用
    • 有一个书面归档,便于参考和查阅,沉淀和维护
    • 便于前端和后端的开发,联调的介质。后端=>接口文档<=前端
    • 在线测试,作为工具,提高开发速率
  3. 怎么做接口文档
    • 手写(比如腾讯笔记,markdown笔记)
    • 自动化接口文档生成:根据项目代码生成完整的文档或在线联调工具Swagger,Postman(侧重接管理),apifox,apipost,eolink
  4. Swagger接口的原理
    • 自定义Swagger配置类
    • 定义需要生成接口文档的代码位置(controller)

项目中使用Swagger+Knife4j接口文档

  1. Swagger官方:https://swagger.io/
  2. 项目中引入依赖
    <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
    
  3. 自定义Swagger配置类,在springBoot项目中使用springBoot的注解,生成一个swagger配置的bean。
    	package com.yupi.usercenter.config;
    
    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.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
    
    /**
     * 自定义swagger的配置
     */
    @Configuration
    @EnableSwagger2WebMvc // Swagger的开关,表示已经启用Swagger
    public class SwaggerConfig {
        @Bean(value = "defaultApi2") //生成一个swagger的配置,框架扫描到这个配置,注入到swagger的对象中,就可以初始化一个文档
        public Docket createRestApi(){
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    //标注控制器的位置
                    .apis(RequestHandlerSelectors.basePackage("com.yupi.usercenter.controller"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        /**
         * api信息
         * @return
         */
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder().title("用户中心")
                    .contact(new Contact("whale", "www.xxx.com", "xxx@qq.com"))
                    .description("这是用Swagger动态生成的用户中心接口文档")
                    .termsOfServiceUrl("NO terms of service")
                    .version("1.0")
                    .build();
        }
    }
    
    若springboot versio>=2.6,需要添加以下配置
      mvc:
       pathmatch:
         matching-strategy: ANT_PATH_MATCHER
    
  4. 结果展示在这里插入图片描述

http://www.kler.cn/a/149791.html

相关文章:

  • Ubuntu20.4系统编译瑞芯微RK3568 SDK
  • Android OpenGL ES详解——纹理:纹理过滤GL_NEAREST和GL_LINEAR的区别
  • WebStorm 如何调试 Vue 项目
  • mapreduce 将数据清洗后保存到 hbase
  • 服务器数据恢复—分区结构被破坏的reiserfs文件系统数据恢复案例
  • C++ | Leetcode C++题解之第556题下一个更大元素III
  • Redis-安装、配置和修改配置文件、以及在Ubuntu和CentOS上设置Redis服务的开机启动和防火墙设置,以及客户端连接。
  • 面试题库之JAVA基础篇(一)
  • springboot自动重启及SpringBoot Developer tools简介
  • 22-Python与设计模式--状态模式
  • 2023亚太地区数学建模B题思路分析+模型+代码+论文
  • LeetCode 5 最长回文子串
  • Oracle Linux 9.3 发布
  • 大模型加载的参数介绍及推荐表,temperature、top_k、top_p、num_beams、num_beam_groups、do_sample等
  • Python压缩、解压文件
  • 数据库中生成列的对比
  • C 语言头文件
  • 图书管理系统源码,图书管理系统开发,图书借阅系统源码配置和运行图解源码已附加
  • 【华为OD题库-042】战场索敌-java
  • Kafka集群部署详细教程
  • Bug 检查 0x7B:INACCESSIBLE_BOOT_DEVICE(未解决)
  • Android WorldWind加载shapefile格式文件形成三维效果
  • Android 13.0 无源码app修改它的icon图标
  • 【pytest】执行环境切换的两种解决方案
  • IO和NIO的区别 BIO,NIO,AIO 有什么区别? Files的常用方法都有哪些?
  • 计算机端口