Swagger

Swagger3.0.0实战 springboot2.6.4+基于knife4j增强的Swagger3.0.0实现 阅读详情

先了解什么是RESTful API?

参考博文:https://blog.youkuaiyun.com/hjc1984117/article/details/77334616

总结:前后端分离,而双方需要一个联系中介。前端和后端的唯一联系,变成了API接口;API文档变成了前后端开发人员联系的纽带,变得越来越重要。

Swagger就是一款让你更好的书写API文档的框架。 

 

什么是Swagger?

如上,Swagger就是一款让你更好的书写API文档的框架,是一个Restful风格接口的文档在线自动生成和测试的框架 。 深入的了解和学习可以参考以下链接:

参考博文:https://blog.youkuaiyun.com/chenyulancn/article/details/79487318

                  https://blog.youkuaiyun.com/tuposky/article/details/77965139

官网地址:https://swagger.io/

 

下面以我的博文 搭建 SpringBoot 2.0 项目 (五) 搭建一个集成ssm的web项目 为基础,进行简单配置来入门swagger的设置与使用。

1、添加依赖

  截止本博文发表日期,最新版本为 2.8.0。由于本人项目开发采用了2.7.0版本,本博文以 2.7.0 版本的为案例。

 在pom.xml中插入相关依赖,自动下载。

        <dependency>
            <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>

2、创建Swagger的配置文件

在启动类 Application 的同级目录下,创建配置文件

@Configuration
@EnableSwagger2
public class Swagger {
    @Bean
    public Docket controllerApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .title("Swagger2 学习")
                        .description("RESTful API")
                        .contact(new Contact("Henry_Lin_Wind的博客", "https://blog.youkuaiyun.com/Henry_Lin_Wind", null))
                        .version("版本号:2.8.0")
                        .build())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build();
    }
   
}

 启动项目,访问 http://localhost:8080/swagger-ui.html#/,即可看到如下页面。

从上图可看出,很多接口及其参数以及返回信息设置都没有相关的注释和说明。如下图所示,需要在相关位置加入注释。

接下来分步骤说明插入注释所需要的注解及其使用方法

3、添加接口说明

@ApiOperation :在Swagger中,默认以方法名作为API名称.可在方法上使用@ApiOperation来设置或修改名称

@ApiOperation("欢迎页面")
	@RequestMapping(value = "/hello",method = RequestMethod.GET)
	public String hello(){
		System.out.println("Hello");
		return "Log";
	}

 

4、接口的相关参数的说明

@ApiImplicitParam:此注解可以设置接口下的 Parameters 的相关参数如Parameters 名称,描述,类型等。有多个参数可采用如下方式

@ApiImplicitParams({

   @ApiImplicitParam

   @ApiImplicitParam

})

 参见下表,@ApiImplicitParam 有如下属性

属性可选值说明
name 参数名,例:@requestParams("a") String b,则name=a
value 参数说明
dataType原始数据类型(string,int,long等)或class名参数类型
paramTypequery,path,body,header,form参数方式
requiredtrue,false是否必填
allowMultipletrue,false允许多个值
defaultValue 默认值
allowableValues 允许的值
access  

属性详解如下:

  • name : 参数名

       必须与实际参数传入变量名一致.,显示在Parameters表格的Parameter列

  • value : 参数说明

       可任意填写,显示在Parameters表格的Description列

  • paramType 参数方式,如下:

        query  :  @RequestParam  , @ModelAttribute

        path    :  @PathVariable

        body   :  @RequestBody

        header:  @RequestHeader

 

  • required:是否必填- dataType:参数类型

       可以是简单数据类型,如string,int,long等,也可以是一个类的类名,当dataType是一个自定义类时,参考Api自定义类说明

  • 值为true或false.

       当值为true时,Parameters表格的Parameter列与Description列为粗体,且value列的输入框显示required,该输入框为空时将阻止提交操作

  • allowMultiple:允许多值

       True或False
       当为true时,输入框可使用”,”连接多个值,参数必须为数组或列表才可使用该属性

  • defaultValue :默认值

       该属性有值时,Parameters表格的value列输入框默认填入该值

  • allowableValues :允许的值的数组

       该属性有值时,Parameters表格的value列输入框将改为下拉列表,列表项为该值

 

以上属性了解后,开始在添加@ApiImplicitParam,设置相关属性:

@ApiOperation("用户登录")
@ApiImplicitParams({
    @ApiImplicitParam(paramType="query",name = "name", value = "用户名称", required = true, dataType = "String"),
    @ApiImplicitParam(paramType="body",name = "password", value = "用户密码", required = true, dataType = "String")
})
@RequestMapping(value = "/login",method = RequestMethod.GET)
public String addUser1(String name,String password) {

设置完成后,刷新页面,可以看到相关属性已成功修改并更新。效果如下: 

 

以上就是swagger的入门案例,附上2.8.0版本的swagger效果图。风格不同,按需使用。

Swagger——【SpringBoot集成Swagger、配置Swagger、配置扫描接口、配置API分组】 互联网大厂比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考。无论是哪家公司,都很重视高并发高可用技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。下面有部分截图希望能对大家有所帮助。 阅读详情

相关推荐

Swagger解析大全

1.什么是Swagger OpenAPI规范(OpenAPI Specification 简称OAS)是Linux基金会的一个项目,试图通过定义一种用来描述API格式或API定义的语言,来规范RESTful服务开发过程,目前版本是V3.0,并且已经发布并开源在github上。 Swagger是符合OpenAPI规范的接口开发工具,支持从设计和文档到测试和部署的整个API生命周 期的开发。 (h...

spring_root的博客 2426

swagger-ui.html 显示Parameters有误

swagger-ui.html 显示Parameters有误

MTonj的博客 1465

Oracle PLM Agile936 单点登录配置方式

Oracle PLM Agile936 单点登录配置方式

Jay的个人博客 825

Swagger学习⑧——@Parameters注解

注解是库的一部分,属于。它用于在 API 操作中同时描述多个参数。与@Parameter注解不同,是一个容器注解,可以包含多个@Parameter注解,从而更简洁地描述多个参数。

一个写了10年bug的程序员日常笔记。 1818

专访高性能计算专家赵开勇:无人机/机器人开发实战,如何优化深度学习?

从能够自主飞行的无人机,到能和小朋友玩物体识别等游戏的机器人,极客们对智能设备追求没有止境。除了轻巧的体积、超长的续航,更重要的是要有一个智能的“大脑”,来实现人类能够想得到的人机交互,或者智能化的自主决策和行为动作,毫无疑问强大的深度学习能力不可或缺。那么,拒绝束缚人类想象力的嵌入式智能设备,其开发工作需要什么样的环境和工具?开发者进行相关开发的可行思路是什么?近日,优快云记者就此专访了智能设...

happytofly的博客 3510

Springboot计算机毕业设计校园树洞微信小程序【附源码】开题+论文+mysql+程序+部署

因此,开发一款专门针对校园用户的树洞微信小程序,为学生提供一个安全、私密、便捷的倾诉和交流平台,具有重要的现实意义和应用价值。通过本研究的实施,我们预期能够开发出一款功能全面、操作便捷的校园树洞微信小程序,为校园师生提供一个安全、私密、便捷的倾诉和交流平台。此外,通过不断优化和改进小程序的功能和服务,我们预期能够提升用户体验和满意度,推动校园树洞小程序的持续发展,并为校园生活的和谐与健康发展做出积极贡献。同时,通过不断优化小程序的功能和服务,提升用户体验和满意度,推动校园树洞小程序的广泛应用和持续发展。

光冯毕设程序 1666

Swagger 3 注解使用指南

注解来描述每个API操作的摘要和详细描述,注解的对象,用于描述参数的数据类型。描述:用于描述操作的输入参数。在上述示例中,我们使用了。注解来描述请求体,以及。注解来描述响应结果,注解来描述路径参数,注解来描述响应结果。

吉屋安的博客 2万+

数字IC后端新手必看:Innovus从安装到跑通第一个设计的完整流程(附常用命令清单)

本文为数字IC后端设计新手提供了Cadence Innovus工具的完整实战指南。详细介绍了从环境搭建、软件安装与许可证配置,到加载网表、库文件和约束,并逐步完成布局规划、单元布局、时钟树综合、布线及物理验证的核心使用流程。文章最后附有常用Tcl命令清单,帮助初学者快速上手并跑通第一个设计。

vscode5coder的博客 1239

Swagger——快速使用swagger

swagger使用教程,springboot整合使用swagger

YR_112233的博客 8万+

(3dnr)多帧视频图像去噪 (一)

视频图像去噪主要利用相邻帧间内容相似性,通过时域帧平均降低随机噪声。为避免运动物体产生"拖尾"现象,可采用运动自适应或运动补偿时域滤波方法。前者根据运动强度动态调整滤波系数,后者通过运动补偿使参考帧更接近当前帧。运动补偿方法虽能更好处理运动区域,但计算复杂度高且对快速运动场景效果有限。相比之下,运动自适应方法在实时视频处理中更具优势,能平衡去噪效果与硬件资源消耗。两种方法可根据场景动态切换以获得最佳去噪效果。

大熊 1871

自助结账商品检测(Scanned Item Detection)——基于YOLOv8的RPC数据集实战

RPC数据集是由中国科学院自动化研究所发布的零售商品结账检测公开数据集,广泛用于自助结账和零售场景下的目标检测与识别。YOLOv8是YOLO系列最新版本,由Ultralytics推出,继承了YOLO家族的高效快速和高准确性,适用于实时检测场景。本文系统介绍了基于YOLOv8的RPC数据集自助结账商品检测方案,涵盖数据准备、训练、推理及UI界面设计。未来,可结合多模态感知、RFID融合技术,打造更加智能和稳定的自助结账系统。

YOLO 252

SpringBoot之swagger

SpringBoot之swagger swagger是什么 1、是一款让你更好的书写API文档的规范且完整框架。 2、提供描述、生产、消费和可视化RESTful Web Service。 3、是由庞大工具集合支撑的形式化规范。这个集合涵盖了从终端用户接口、底层代码库到商业API管理的方方面面。 springboot集成swagger <dependency> <groupId>io.springfox</groupId>

qq_41343166的博客 2万+

51单片机嵌入式开发:14、STC89C52RC 之HX1838红外解码NEC+数码管+串口打印+LED显示

对于C51单片机的设计思路,你可以使用类似的步骤来实现红外解码、数码管显示和LED显示的功能。下面是一个简单的设计思路:(1) 连接HX1838红外解码器、数码管和LED到C51单片机。将HX1838的信号引脚连接到C51单片机的外部中断引脚(例如INT0),数码管的CLK引脚连接到C51单片机的某个IO口引脚,数码管的DIO引脚连接到C51单片机的另一个IO口引脚,LED连接到C51单片机的某个IO口引脚。(2) 在C51的程序中,定义并初始化所需的IO口和外部中断。

sinat_30943509的博客 2977

Swagger的使用,包括swagger2和swagger3

Swagger的使用 1、建一个maven项目 2、引入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency>

daijianzhou的专栏 8731

7、RNA 二级结构预测:包含接吻发夹基序的新策略

本文提出三种用于预测RNA二级结构中接吻发夹基序的新策略,结合规范化规则与非歧义动态规划,分别在时间与空间复杂度之间进行权衡。策略A以O(n⁴)时间和O(n²)空间实现高效预测;策略B通过存储次优结果扩大搜索空间,空间复杂度升至O(n³);策略C全面探索组合可能,时间复杂度为O(n⁵),但保持O(n²)空间。实验表明不同策略适用于不同复杂度的序列,为RNA结构预测提供了灵活且可扩展的解决方案。

j7k8l的博客 133

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Swagger升级指南:Swagger2与Swagger3注解差异揭秘

Swagger3(OpenAPI 3)是对Swagger2的一个重大升级,它不仅提供了更多的新特性,也带来了注解的变化。虽然迁移可能需要一些工作,但新的规范和特性是值得的。本文提供了一个基础的迁移指南和注解对比,帮助大家理解如何从Swagger2迁移到Swagger3,并利用它来更好地文档化API。

果酱 の 博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【swagger关闭】生产环境关闭swagger方法

生产环境关闭swagger方法

一只懂代码不懂人情世故的源码爱好猿 3万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

关于Swagger的使用

视频讲解可以看看这个: 【黑马程序员Java项目实战《苍穹外卖》,最适合新手的SpringBoot+SSM的企业级Java项目实战】 https://www.bilibili.com/video/BV1TP411v7v6/?p=14&share_source=copy_web&vd_source=282bf01e944809becea85b62e4bd1f75

m0_63088707的博客 1811

【Swagger】Swagger简介及简单使用

说起Swagger就不得不说前后端分离当前最主流的前后端分离技术栈:Vue+Springboot后端时代:前端只用管理静态页面:html、css、js最后统一交给后端,后端将其修改为jsp,在整个过程中,后端充当主力前后端分离时代:后端:后端控制层,服务层,数据访问层【后端团队】前端:前端控制层,视图层【前端团队】前端可以自定义一些伪后端数据:json,在写的时候就存在,不需要后端,前端工程依旧能够跑起来那么前端后端如何交互?

treesorshining的博客 2800

【Swagger】Swagger-狂神笔记

前后端分离前端 -> 前端控制层、视图层后端 -> 后端控制层、服务层、数据访问层前后端通过API进行交互前后端相对独立且松耦合产生的问题前后端集成,前端或者后端无法做到“及时协商,尽早解决”,最终导致问题集中爆发解决方案首先定义schema [ 计划的提纲 ],并实时跟踪最新的API,降低集成风险Swagger号称世界上最流行的API框架Restful Api 文档在线自动生成器 => API 文档 与API 定义同步更新直接运行,在线测试API。

知不足而奋进,望远山而前行 2万+

Swagger2 和 Swagger3 的区别与使用

Swagger2 和 Swagger3 的区别与使用 主要区别: 1 导入的依赖 注意:我springboot 使用的版本为4.3.1, 版本过高会报错 Swagger2 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> &l

A2254536570的博客 6866
上一篇: 搭建 SpringBoot 2.0 项目 (五) 搭建一个集成ssm的web项目
下一篇: Netty
Henry_Lin_Wind
博客等级 码龄8年 49粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值