后端整合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.mzph.cn/news/178490.shtml

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

相关文章

python:类中静态方法,类方法和实例方法的使用与区别

python 类里面常用的方法有3个&#xff1a;静态方法(staticmethod)&#xff0c;类方法(classmethod)和实例方法(self) 1. 函数和方法 1.1 函数&#xff1a; 函数定义是由def()关键字定义 def fun():a "hello"return a# 函数调用 res fun() print(res)1.2 方法-…

ESXi 添加虚拟闪存 无可选设备问题排查

虚拟内存是计算机系统中的一种技术&#xff0c;它可以将计算机硬盘的一部分空间作为临时存储器来使用。当计算机的物理内存&#xff08;RAM&#xff09;不足时&#xff0c;操作系统可以将部分数据从内存移至硬盘的虚拟内存空间中&#xff0c;以释放内存供其他程序使用。虚拟内存…

uniapp基础-教程之HBuilderX配置篇-01

uniapp教程之HBuilderX配置篇-01 为什么要做这个教程的梳理&#xff0c;主要用于自己学习和总结&#xff0c;利于增加自己的积累和记忆。首先下载HBuilderX&#xff0c;并保证你的软件在C盘进行运行&#xff0c;最好使用英文或者拼音&#xff0c;这个操作是为了保证软件的稳定…

羊大师提示,别让坏习惯影响生活

羊大师提示&#xff0c;别让坏习惯影响生活 拖延是人们常常会遇到的一种坏习惯&#xff0c;它不仅浪费时间&#xff0c;还会对生活、工作和学习造成负面影响。为了改变这种坏习惯&#xff0c;我们需要采取一系列的措施&#xff0c;从根本上改变自己的生活方式。下面小编羊大师…

qt 5.15.2读取csv文件功能

qt 5.15.2读取csv文件功能 工程文件.pro 内容&#xff1a; QT core#添加网络模块 QT networkCONFIG c17 cmdline# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES QT_DISABLE_DEPREC…

bat脚本执行py文件

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

RK356x监控温度及CPU频率的服务(Ubuntu20.04)

1 脚本 touch /userdata/show_temps.sh添加内容 #! /bin/bash //压力测试 stress --cpu 4 & stress --cpu 4 &while true; dotypes($(cat /sys/class/thermal/thermal_zone*/type))temps($(cat /sys/class/thermal/thermal_zone*/temp))freqs($(cat /sys/bus/cpu/dev…

你知道如何使用队列实现栈吗?(C语言)

这时一道非常经典的题型&#xff0c;因为栈和队列的性质是相反的&#xff0c;队列的数据是先入先出&#xff0c;栈的数据是后入先出&#xff0c;那么怎样使用两个队列实现栈呢&#xff1f; 225. 用队列实现栈https://leetcode.cn/problems/implement-stack-using-queues/ 这是…

安卓开发学习---kotlin版---笔记(一)

Hello word 前言&#xff1a;上次学习安卓&#xff0c;学了Java开发&#xff0c;简单的搭了几个安卓界面。这次要学习Kotlin语言&#xff0c;然后开发安卓&#xff0c;趁着还年轻&#xff0c;学点新东西&#xff0c;坚持~ 未来的你会感谢现在努力的你~ 主要学习资料&#xff1a…

面试题库之JAVA基础篇(一)

java的特性 面向对象&#xff0c;能够使程序的耦合度更低&#xff0c;内聚性更高。平台无关性&#xff0c;因为java程序运行在jvm虚上。支持多线程。安全可靠。有丰富的类库。 面向对象 万物皆对象&#xff0c;将解决问题的各个元素抽象成对象&#xff0c;对象中包含解决单个…

leetcode算法之字符串

目录 1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘 1.最长公共前缀 最长公共前缀 class Solution { public:string longestCommonPrefix(vector<string>& strs) {//法一&#xff1a;两两比较string ret strs[0];for(int i1;i<strs.size();i){ret f…

Linux gzip命令用法详解:如何压缩和解压文件(附实例教程和注意事项)

Linux gzip命令介绍 Linux gzip命令用于压缩文件。它可以减小文件的大小以节省磁盘空间&#xff0c;并且可以通过gzip命令将多个文件合并成一个压缩文件。 Linux gzip命令适用的Linux版本 Linux gzip命令可以在多数Linux发行版&#xff08;如Debian、Ubuntu、Alpine、Arch L…

NocoBase企业级低代码开发平台有什么优势?

企业级低代码开发平台&#xff0c;作为一种新兴的技术解决方案&#xff0c;正逐渐在企业中受到越来越多的关注和青睐。它以其高效、灵活的特性&#xff0c;为企业的创新提供了更快速、更可持续的支持和推动。 低代码开发平台是一种以图形化界面为基础&#xff0c;结合拖拽式编…

Qt右键菜单+动作+qss案例

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//设置界面颜色样式this->setStyleSheet("background-color:rgb(54,54,54)");//创建文件菜单QMenu *fileMenuItems new QMenu;//菜单添加iconfileMenuItems->se…

在Spring Boot中配置@Async的线程池的拒绝策略

在上一篇文章中&#xff0c;我们使用多个线程隔离不同的异步任务&#xff0c;这篇文章&#xff0c;我们将围绕在Async的线程池的拒绝策略进行完善线程池的使用&#xff0c;在我们例举案例之前&#xff0c;我们先了解一下&#xff1a; Async的拒绝策略用来解决什么问题&#xff…

如何根据接口文档,轻松快速的模拟接口服务?

什么是WireMock? WireMock 是一个Http 模拟服务,其核心也是一个web服务,WireMock主要是为特定请求提供固定的返回值。 WireMock可以作为单独进程启动,模拟一个WEB服务器,提供一些API访问,并返回特定的返回值。也可以作为第三方库在项目中使用。 如何使用 standalone方…

PTA:计算m到n之间所有素数的和

题目 计算m到n之间所有素数的和&#xff0c;其中 2 < m <n <100 输入格式: 请在这里写输入格式。例如&#xff1a;输入两个正整数 输出格式: 请在这里描述输出格式。例如&#xff1a;输出两个正整数之间的素数和。 样例 输入样例: 在这里给出一组输入。例如&…

2161根据数字划分数组

给你一个下标从 0 开始的整数数组 nums 和一个整数 pivot 。请你将 nums 重新排列&#xff0c;使得以下条件均成立&#xff1a; 所有小于 pivot 的元素都出现在所有大于 pivot 的元素 之前 。所有等于 pivot 的元素都出现在小于和大于 pivot 的元素 中间 。小于 pivot 的元素之…

C 语言预处理器

C 语言预处理器 在本教程中&#xff0c;将向您介绍c预处理器&#xff0c;并在示例的帮助下学习使用&#xff03;include&#xff0c;&#xff03;define和条件编译。C预处理程序是一个宏预处理程序&#xff08;允许您定义宏&#xff09;&#xff0c;可以在编译程序之前对其进行…

vue3如何判断是不是响应式数据

isRef: 检查一个值是否为一个 ref 对象 isReactive: 检查一个对象是否是由 reactive 创建的响应式代理 isReadonly: 检查一个对象是否是由 readonly 创建的只读代理 isProxy: 检查一个对象是否是由 reactive 或者 readonly 方法创建的代理 <template><div>&l…