后端整合Swagger+Knife4j接口文档

news2024/9/23 1:36:50

后端整合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.coloradmin.cn/o/1264232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不同酿酒风格生产的葡萄酒有什么不同?

霞多丽适合大多数风格的葡萄酒制作&#xff0c;从干燥的静止葡萄酒&#xff0c;到起泡酒&#xff0c;再到甜美的晚收&#xff0c;甚至是植物酿酒。最广泛影响霞多丽葡萄酒最终结果的两个酿酒决定是是否使用乳酸发酵和用于葡萄酒的橡木影响程度。 通过乳酸发酵&#xff08;或MLF…

开关电源低温启动测试条件是什么?如何测试开关电源?

开关电源作为常用的一种电源供应器被广泛应用在各大领域&#xff0c;同时也被用在各种不同的环境温度下工作。因此在开关电源测试中&#xff0c;温度测试是评估其性能、可靠性、稳定性的重要指标。低温启动测试就是检测低温存储环境对开关电源性能的影响&#xff0c;判断开关电…

ubuntu vmware开启3d加速画面异常

在ubuntu上开启vmware&#xff0c;进入全屏就会出现左上角和右下角两个不同的画面&#xff0c;并来回闪&#xff0c;不使用3d加速&#xff0c;一切正常&#xff0c;但是画面模糊。在ubuntu18 20 22上测试&#xff0c;vmware 15 16 17问题依旧。 原因 经过测试&#xff0c;原…

filebeat(远程收集日志工具)

&#xff08;一&#xff09;filebeat 1、filebeat和logstash相同 &#xff08;1&#xff09;filebeat是一个轻量级的日志收集工具&#xff0c;所使用的系统资源比logstash部署和启动时使用的资源要小的多 &#xff08;2&#xff09;filebeat可以运行在非Java环境、可以代理l…

mitmproxy安装以及模拟接口数据返回

使用pycharm直接安装&#xff0c;pip install mitmproxy 安装成功后直接使用命令mitmdump --version查看版本 然后自己本地下载https://mitmproxy.org/downloads/#10.1.1/ 之后一步步安装即可 安装成功后这里会出现一个.mitmproxy文件 双击这个文件进入开始安装证书 我…

Echarts legend图例配置项 设置位置 显示隐藏

Echarts 官网完整配置项 https://echarts.apache.org/zh/option.html#legend 配置项 legend: { }设置图例为圆形 icon: circle,//设置图例为圆形设置图例位置 top: 20%//距离顶部百分之20//y:bottom 在底部显示设置图例 宽度 高度 itemWidth: 10,//设置图例宽度 itemHeight: …

【嵌入式】开源shell命令行的移植和使用(2)——letter-shell

目录 一 背景说明 二 移植准备 三 移植过程 四 自定义命令 五 实际使用 一 背景说明 之前使用过一款开源shell工具 nr_micro_shell &#xff08;【嵌入式】开源shell命令行的移植和使用&#xff08;1&#xff09;——nr_micro_shell-CSDN博客&#xff09;&#xff0c;感觉…

4.4-Docker bridge0详解

在Docker世界中&#xff0c;两个container是通过bridge0连接起来的。 首先&#xff0c;介绍一个命令&#xff1a;docker network ls 这个docker network ls明令会列举出来当前这台机器上docker有哪些网络。 先看一下bridge。 现在有一个容器flask-hello-docker&#xff0c;它是…

SSM框架(三):SpringMVC

文章目录 一、SpringMVC简介1.1 概述1.2 入门案例1.3 bean的加载控制1.4 PostMan插件 二、请求【页面向后台发送数据】2.1 请求映射路径2.2 请求方式2.3 解决中文乱码2.4 请求参数2.4.1 五种常见参数种类2.4.2 JSON数据2.4.3 RequestParam与RequestBody的区别2.4.4 日期类型 三…

基于springboot实现医院信管系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现医院信管系统演示 摘要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#x…

error: ‘PixelPacket’ in namespace ‘Magick’ does not name a type

最近做一个项目需要配置ImageMagick库&#xff0c;本项目配置环境如下&#xff1a; ImageMagick version 7 Operating system, version and so on ubuntu 20.04 Descriptionerror: ‘PixelPacket’ in namespace ‘Magick’ does not name a type 这是在运行程序时候出现的问题…

想成为网络安全工程师该如何学习?

一、网络安全应该怎么学&#xff1f; 1.计算机基础需要过关 这一步跟网安关系暂时不大&#xff0c;是进入it行业每个人都必须掌握的基础能力。 计算机网络计算机操作系统算法与数据架构数据库 Tips:不用非要钻研至非常精通&#xff0c;可以与学习其他课程同步进行。 2.渗透技…

计算虚拟化之CPU——qemu解析

解析 qemu 的命令行&#xff0c;qemu 的命令行解析&#xff0c;就是下面这样一长串。 qemu_add_opts(&qemu_drive_opts);qemu_add_opts(&qemu_chardev_opts);qemu_add_opts(&qemu_device_opts);qemu_add_opts(&qemu_netdev_opts);qemu_add_opts(&qemu_nic_…

AtCoder ABC163

D - Sum of Large Numbers 不考虑 1 0 100 10^{100} 10100的情况下&#xff0c;检查能取到的最大和与最小和&#xff0c;此时中间的所有数都能取到 给出 1 0 100 10^{100} 10100的用意在于&#xff0c;确保取2个数与取3个数下面取到的和是不相同的。因此遍历取数的个数&#x…

【微服务专题】微服务架构演进

目录 前言阅读对象阅读导航前置知识笔记正文一、系统架构的演变1.1 单体架构1.2 单体水平架构1.3 垂直架构1.4 SOA架构1.5 微服务架构 二、如何实现微服务架构2.1 微服务架构下的技术挑战2.2 微服务技术栈选型2.3 什么是Spring Cloud全家桶2.4 Spring Cloud Alibaba版本选择 学…

【浅尝C++】C++类的6大默认成员函数——构造、析构及拷贝构造函数

&#x1f388;归属专栏&#xff1a;浅尝C &#x1f697;个人主页&#xff1a;Jammingpro &#x1f41f;记录一句&#xff1a;好想摆烂&#xff0c;又好想学习~~ 文章前言&#xff1a;本篇文章简要介绍C类的构造函数、析构函数及拷贝构造函数&#xff0c;介绍每个小点时&#xf…

U-boot(六):命令体系,环境变量,iNand/SD卡驱动

本文主要探讨210的uboot命令体系&#xff0c;黄金变量,iNand/SD卡驱动相关知识。 命令体系 uboot命令体系 位置:uboot/common/ 参数:uboot命令支持传递参数(argc,argv) 函数:xxx命令的实现算数为do_xxx /** Use puts() inst…

MVVM 模式与 MVC 模式:构建高效应用的选择

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

金山办公前端二面

1. react 和 vue的区别 还有jquery&#xff1f; &#xff08;1&#xff09; jquery 和 vue、react 的区别&#xff1a; vue 和 react : 数据和视图分离 以数据驱动视图&#xff0c;只关心数据变化 dom 操作被封装&#xff08;数据驱动&#xff09; jquery&#xff1a;依靠 do…