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

SpringBoot集成Swagger3.0(入门) 02

文章目录

        • Swagger3常用配置注解
        • 接口测试
        • API信息配置
        • Swagger3 Docket开关,过滤,分组

Swagger3常用配置注解

@ApiImplicitParams,@ApiImplicitParam:Swagger3对参数的描述。

参数名参数值
name参数名
value参数的具体意义,作用。
required参数是否必填。
dataType参数的数据类型。
paramType查询参数类型

paramType有如下几种形式:

类型作用
path以地址的形式提交数据
query直接跟参数完成自动映射赋值
body以流的形式提交,仅支持post
header参数在request headers里边提交
form以form表单的形式提交,仅支持post

@ApiResponses, @ApiResponse:Swagger3对响应信息的描述。

参数名参数值
code响应码:400
message信息,例如:请求参数类型错误。
response抛出异常的类。

Controller层

package com.xct.swagger_1.controller.one;import com.xct.swagger_1.entity.User;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;/*** @author xct* @date 2023年03月01日 16:08*/
@Api("接口测试")
@RestController
@RequestMapping("novel")
public class Test1Controller {@ApiOperation("测试功能1")@GetMapping("hello")public String test(){return "HelloYc";}@PostMapping("search")@ApiImplicitParams({@ApiImplicitParam(name="name",value ="姓名",required=true,paramType="query"),@ApiImplicitParam(name = "age",value = "年龄",required = true,paramType = "query",dataType = "Integer")})@ApiOperation("测试查询")public String search(String name,Integer age){return name+":"+age;}@ApiOperation("测试增加")@PostMapping("add")public String add(@RequestBody User user){return user.getName()+":"+user.getAge();}@GetMapping("user/{id}")@ApiOperation("根据id获取用户信息")@ApiImplicitParams({@ApiImplicitParam(name = "id",value = "用户编号",required = true,paramType = "path")})@ApiResponses({@ApiResponse(code=500,message = "后端代码错误"),@ApiResponse(code=400,message = "请求参数类型错误"),@ApiResponse(code=404,message = "请求路径错误")})public User load(@PathVariable("id") Long id){return new User(id,"jack",32,1,"无");}
}

接口测试


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

API信息配置

SwaggerConfig配置文件

package com.xct.swagger_1.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;@Configuration
//@EnableSwagger2 //swagger3版本不需要使用这个注解,当然写上也无所谓~
public class SwaggerConfig {//配置Swagger的Docket bean@Beanpublic Docket createRestApi1() {return new Docket(DocumentationType.OAS_30)// 指定Swagger3.0版本.groupName("开发组001").select().apis(RequestHandlerSelectors.basePackage("com.xct.swagger_1.controller.one"))//扫描指定包下的api.build().apiInfo(createApiInfo());}@Beanpublic Docket createRestApi2() {return new Docket(DocumentationType.OAS_30)// 指定Swagger3.0版本.groupName("开发组002").select().apis(RequestHandlerSelectors.basePackage("com.xct.swagger_1.controller.two"))//扫描指定包下的api.build().apiInfo(createApiInfo());}@Beanpublic ApiInfo createApiInfo() {return new ApiInfoBuilder().title("yc&xct管理平台").description("yc&xct管理平台 API接口文档").license("南京信息技术有限公司").licenseUrl("").version("1.0").build();}
}

Swagger3 Docket开关,过滤,分组

开关:调用enable方法。
开:

在这里插入图片描述
关:

在这里插入图片描述
过滤:调用select方法;通过apis方法,basePackage可以根据包路径来生成特定类的API,any方法是默认所有都有效,none方法都无效。withClassAnnotation根据类注解,withMethodAnntation是根据方法注解,一般我们用的是basePackage方法。

控制器1:

package com.xct.swagger_1.controller.one;import com.xct.swagger_1.entity.User;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;/*** @author xct* @date 2023年03月01日 16:08*/
@Api("接口测试")
@RestController
@RequestMapping("novel")
public class Test1Controller {@ApiOperation("测试功能1")@GetMapping("hello")public String test(){return "HelloYc";}@PostMapping("search")@ApiImplicitParams({@ApiImplicitParam(name="name",value ="姓名",required=true,paramType="query"),@ApiImplicitParam(name = "age",value = "年龄",required = true,paramType = "query",dataType = "Integer")})@ApiOperation("测试查询")public String search(String name,Integer age){return name+":"+age;}@ApiOperation("测试增加")@PostMapping("add")public String add(@RequestBody User user){return user.getName()+":"+user.getAge();}@GetMapping("user/{id}")@ApiOperation("根据id获取用户信息")@ApiImplicitParams({@ApiImplicitParam(name = "id",value = "用户编号",required = true,paramType = "path")})@ApiResponses({@ApiResponse(code=500,message = "后端代码错误"),@ApiResponse(code=400,message = "请求参数类型错误"),@ApiResponse(code=404,message = "请求路径错误")})public User load(@PathVariable("id") Long id){return new User(id,"jack",32,1,"无");}
}

控制器2:

package com.xct.swagger_1.controller.two;import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;/*** @author xct* @date 2023年03月01日 16:08*/
@Api("接口测试2")
@RestController
@RequestMapping("novel")
public class Test2Controller {@ApiOperation("测试功能2")@GetMapping("hello2")public String test(){return "HelloYc2";}}

测试:
basePackage:指定包路径下的api
在这里插入图片描述

any:任何api都有效。


none:任何api都无效。


分组


在这里插入图片描述

该文章参考多方文档

相关文章:

SpringBoot集成Swagger3.0(入门) 02

文章目录Swagger3常用配置注解接口测试API信息配置Swagger3 Docket开关,过滤,分组Swagger3常用配置注解 ApiImplicitParams,ApiImplicitParam:Swagger3对参数的描述。 参数名参数值name参数名value参数的具体意义,作用。required参…...

网络协议丨ICMP协议

ICMP协议,全称 Internet Control Message Protocol,就是互联网控制报文协议。我们其实对它并不陌生,我们平时经常使用的”ping“一下就是基于这个协议工作的。网络包在异常复杂的网络环境中传输时,常常会遇到各种各样的问题。当遇…...

12.1 基于Django的服务器信息查看应用(系统信息、用户信息)

文章目录新建Django项目创建子应用并设置本地化创建数据库表创建超级用户git管理项目(requirements.txt、README.md、.ignore)主机信息监控应用的框架搭建具体功能实现系统信息展示前端界面设计视图函数设计用户信息展示视图函数设计自定义过滤器的实现前…...

ExSwin-Unet 论文研读

ExSwin-Unet摘要1 引言2 方法2.1 基于窗口的注意力块2.2 外部注意力块2.3 不平衡的 Unet 架构2.4 自适应加权调整2.5 双重损失函数3 实验结果3.1 数据集3.2 实现细节3.3 与 SOTA 方法的比较3.4 消融研究4 讨论和限制5 结论数据集来源: https://feta.grand-challenge…...

置顶!!!主页禁言提示原因:在自己论坛发动态误带敏感词,在自己论坛禁止评论90天

置顶!!!主页禁言提示原因:在自己论坛发动态误带敏感词,在自己论坛禁止评论90天 置顶!!!主页禁言提示原因:在自己论坛发动态误带敏感词,在自己论坛禁止评论90天…...

优思学院|解密六西格玛:探索DMAIC和DMADV之间的区别

六西格玛方法中最为广泛使用的两种方法是DMAIC和DMADV。这两种方法都是为了让企业流程更加高效和有效而设计的。虽然这两种方法有一些重要的共同特点,但它们并不可以互相替代,并且被开发用于不同的企业流程。在更详细地比较这两种方法之前,我…...

Pytorch的DataLoader输入输出(以文本为例)

本文不做太多原理介绍,直讲使用流畅。想看更多底层实现-〉传送门。DataLoader简介torch.utils.data.DataLoader是PyTorch中数据读取的一个重要接口,该接口定义在dataloader.py脚本中,只要是用PyTorch来训练模型基本都会用到该接口。本文介绍t…...

代谢组学:Microbiome又一篇!绘制重症先天性心脏病新生儿肠道微生态全景图谱

文章标题:Mapping the early life gut microbiome in neonates with critical congenital heart disease: multiomics insights and implications for host metabolic and immunological health 发表期刊:Microbiome 影响因子:16.837…...

Java基本类型所占字节简述

类型分类所占字节取值范围boolean布尔型1bit0 false、 1 true (1个bit 、1个字节、4个字节)char ​字符型(Unicode字符集中的一个元素)​ 2字节-32768~32767(-2的15次方~2的15次方-1)byte整型1字节-128&a…...

Linux vi常用操作

vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是: 命令模式: 用户刚…...

Unicode(宽字节)、ANSI(多字节)

1、什么时候用Unicode(宽字节),什么时候用ANSI(多字节)? 在linux/windows等操作系统中使用的,一般都是Unicode(宽字节)。 下位机PLC/单片机等硬件设备中使用,一般都是ANSI(多字节)。 所以,通讯中(比如VS项目&#x…...

STM32实战之LED循环点亮

接着上一章讲。本章我们来讲一讲LED流水灯,循环点亮LED。 在LED章节有的可能没有讲到,本章会对其进行说明,尽量每个函数说一下作用。也会在最后说一下STM32的寄存器,在编程中寄存器是避免不了的东西,寄存器也是非常好理…...

智慧厕所智能卫生间系统有哪些功能

南宁北站智能厕所主要功能有哪些?1、卫生间环境空气监测男厕、女厕环境空气监测系统包括对厕所内的温度、湿度、氨气、硫化氢、PM2.5、烟雾等气体数据的实时监测。2、卫生间厕位状态监测系统实时监测厕位内目前的使用状态(有人或无人),数据信…...

【网络】套接字 -- TCP

🥁作者: 华丞臧. 📕​​​​专栏:【网络】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉 LeetCode刷题网站 文章…...

NDK C++ map容器

map容器// TODO map容器 #include <iostream> #include <map>using namespace std;int main() {// TODO map<int, string>按key值排序&#xff0c;同一个key不可以重复插入map<int, string> map1;map1.insert(pair<int, string>(1, "111&qu…...

linux(Centos)安装docker

官网地址&#xff1a;Install Docker Engine on CentOS 首先检查linux系统版本及内核&#xff1a; 安装docker要求系统版本至少为7.x版本&#xff0c;内核至少为3.8以上 cat /etc/redhat-release # 查看系统版本号uname -r #查看linux系统内核 检查系统是否能连上外网&#…...

Delphi 中 FireDAC 数据库连接(处理错误)

参见&#xff1a;Delphi 中 FireDAC 数据库连接&#xff08;总览&#xff09;本主题描述了如何用FireDAC处理数据库错误。一、概述EFDDBEngineException类是所有DBMS异常的基类。单个异常对象是一个数据库错误的集合&#xff0c;可以通过EFDDBEngineException.Errors[]属性访问…...

算法小抄3-理解使用Python容器之列表

引言 首先说一个概念哈,程序算法数据结构,算法是条件语句与循环语句组成的逻辑结构,而数据结构也就是容器. 算法决定数据该如何处理,而容器则决定如何数据如何存储. 不同的语言对容器有不同的实现方式, 但他们的功能都是相似的, 打好容器基础,你就可以在各式各样的语言中来回横…...

Vue3中watch的value问题

目录前言一&#xff0c;ref和reactive的简单复习1.ref函数1.2 reactive函数1.3 用ref定义对象类型数据不用reactive二&#xff0c;watch的value问题2.1 ref2.1.1 普通类型数据2.1.2 对象类型数据2.1.3 另一种方式2.2 reactive三&#xff0c;总结后记前言 在Vue3中&#xff0c;…...

【线性筛+DP】最大和

看错题了&#xff0c;呃呃&#xff0c;其实就是个简单DP最大和 - 蓝桥云课 (lanqiao.cn)题意&#xff1a;思路&#xff1a;设dp[i]为以1为终点的最大和&#xff0c;然后枚举状态和决策就行了主要是线性筛的应用&#xff0c;它可以预处理出一个数的最小质因子是多少Code&#xf…...

openpnp - configure - 丢弃(Discard)位置的设置

文章目录openpnp - configure - 丢弃(Discard)位置的设置概述笔记设置丢弃位置吸取元件失败后, 吸嘴一直吸气的处理ENDopenpnp - configure - 丢弃(Discard)位置的设置 概述 测试时, 吸取了一个元件, 吸取成功了, 现在想将这个料丢掉. 点击控制面板-Special页中的Discard不好…...

java Object 万字详解 (通俗易懂)

基本介绍构造方法成员方法hashCode()getClass()toString()equals()finalize()JavaBean重写Object类的方法重写toString重写equals一、基本介绍Object类是java类层次最顶层的基类&#xff08;父类&#xff09;&#xff0c;所有类都是直接或间接继承自Object类&#xff0c;因此&a…...

Java并发简介(什么是并发)

文章目录并发概念并发和并行同步和异步阻塞和非阻塞进程和线程竞态条件和临界区管程并发的特点提升资源利用率程序响应更快并发的问题安全性问题缓存导致的可见性问题线程切换带来的原子性问题编译优化带来的有序性问题保证并发安全的思路互斥同步&#xff08;阻塞同步&#xf…...

团队API管理工具-YAPI

团队API管理工具-YAPI 推荐一款接口管理平台&#xff0c;操作简单、界面友好、功能丰富、支持markdown语法、可使用Postman导入、Swagger同步数据展示、LDAP、权限管理等功能。 YApi是高效、易用、功能强大的api管理平台&#xff0c;旨在为开发、产品、测试人员提供更优雅的接…...

学习记录 --- Pytorch优化器

文章目录参考文献什么是优化器optimizer的定义optimizer的属性defaultsstateparam_groupsoptimizer的方法zero_grad()step()add_param_group()state_dict()、load_state_dict()优化一个网络同时优化多个网络当成一个网络优化当成多个网络优化只优化网络的某些指定的层调整学习率…...

Flink State 状态后端分析

flink状态实现分析 state * State* |* -------------------InternalKvState* | |* MergingState |* | |* …...

和年薪30W的阿里测开工程师聊过后,才知道我的工作就是打杂的...

前几天和一个朋友聊面试&#xff0c;他说上个月同时拿到了腾讯和阿里的offer&#xff0c;最后选择了阿里。 阿里内部将员工一共分为了14个等级&#xff0c;P6是资深工程师&#xff0c;P7是技术专家。 其中P6和P7就是一个分水岭了&#xff0c;P6是最接近P7的不持股员工&#x…...

C#开发的OpenRA的界面布局数据加载

C#开发的OpenRA的界面布局数据加载 当显示完成加载界面之后,就是进行其它内容处理。 因为后面内容的加载会比较长时间,所以首先显示加载界面是一种非常友好的方法。 因此在软件设计里,尽可能先显示界面,让用户先看到程序正在运行, 然后再处理时间长的加载。如果不这样做,…...

并查集结构

文章目录并查集特点构建过程查找两个元素是否是同一集合优化查找领头元素设置两个元素为同一集合构建结构应用场景并行计算集合问题并查集特点 对于使用并查集构建的结构&#xff0c;可以使得查询两个元素是否在同一集合&#xff0c;以及合并集合的操作无限接近O(1) 构建过程…...

全国CSM敏捷教练认证将于2023年3月25-26开班,报名从速!

CSM&#xff0c;即Certified Scrum Master&#xff0c;是Scrum联盟发起的Scrum认证。 CSM可以帮助团队正确使用Scrum&#xff0c;从而提高项目整体成功的可能性。 CSM深刻理解Scrum的价值观、实践以及Scrum框架。 CSM是“服务型领导”&#xff0c;帮助Scrum团队一起紧密合作。 …...

中海外城市建设有限公司网站/做关键词推广

1.Redis基础 1.Redis是REmote DIctionary Servey&#xff08;远程字典服务的缩写&#xff09;&#xff0c;他是以字典结构储存数据。Redis数据库中的键值除了可以是字符串&#xff0c;还可以还是&#xff1a;字符串&#xff0c;hash&#xff0c;list。set 。zset 类型 2.使用命…...

武汉网址模板建站/沈阳网站seo公司

CMM对软件质量保证是这样描述的&#xff1a;–软件质量保证&#xff08;Quality Assurance&#xff09;的目的是为管理者提供有关软件过程和产品的适当的可视性。它包括评审和审核软件产品及其活动&#xff0c;以验证其是否遵守既定的规程和标准&#xff0c;并向有关负责人汇报…...

用表格做的网站/百度贴吧官网

识破 思维空白犹豫不决&#xff0c;或&#xff0c;心浮气躁瞎猜结论&#xff0c;是卡题的主要原因。 当题目给出的条件很“危”时&#xff0c;按 O 冷静识破&#xff0c;以化险为夷。 精准的识破能带来巨大的罚时优化。 Atcoder/Topcoder 理论 AC战斗记忆识破 记录一些比较不错…...

高端品牌网站建设/百度推广费用一天多少钱

摘要&#xff1a; 在上海交大第一学期的《项目管理知识体系》学习中&#xff0c;张总别样的教学风格&#xff0c;用她的项目管理思维体系启发了我在做项目管理时&#xff0c;用工具管理我的团队。张总的思想是多维的&#xff0c;而我运用的只不过是其中的一维&#xff0c;即用…...

临沂制作网站多少钱/武汉网站seo推广公司

10. 总结<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />本节将会对前面给出的算法和系统做一个总结&#xff0c;并为乐观复制系统的设计者和用户给出一些建议。10.1 对比乐观复制策略<?xml:namespace prefix v ns "…...

html5网站模板怎么用/seo三人行论坛

传送门 一道题让我又要学可行流又要学zkw费用流…… 考虑一下&#xff0c;原题可以转化为一个有向图&#xff0c;每次走一条路径&#xff0c;把每一条边都至少覆盖一次&#xff0c;求最小代价 因为一条边每走过一次&#xff0c;就要付出一次代价 那不就是费用流了么 我们定义每…...