Swagger2基本使用

news2024/11/16 21:43:31

这里写目录标题

  • 废话篇
      • 前言
      • 什么是openAPI
      • Swagger简介
      • Springfox
  • 使用篇
      • swagger的基本使用

废话篇

前言

接口文档对于前后端开发人员都十分重要。尤其近几年流行前后端分离后接口文档又变成重中之重。接口文档固然重要,但是由于项目周期等原因后端人员经常出现无法及时更新导致前端人员抱怨接口文档和实际情况不一致。

很多人员会抱怨别人写的接口文档不规范,不及时更新。但是当自己写的时候确实最烦去写接口文档。这种痛苦只有亲身经历才会牢记于心。

如果接口文档可以实时动态生成就不会出现上面问题Swagger可以完美的解决上面的问题。
即,使得前后端分离开发更方便

什么是openAPI

Open API规范(OpenAPI Specification)以前叫做 Swagger规范 是REST API的API描述格式
REST API 即同一个url根据不同的请求方式实现不同的功能

  • Open API文件允许描述整个 API,
  • 包括 每个访问地址的类型。POST或 GET
  • 每个操作的参数包括输入输出参数
  • 认证方法。
  • 连接信息,声明,使用团队和其他信息 Open API规范可以使用YAML 或JSON 格式进行编写。这样更利于我们和机器进行阅读。

Swagger简介

Swagger是一套围绕 Open API规范构建的开源工具,可以帮助设计,构建,记录和使用REST API。
Swagger 工具包括的组件:

Swagger Editor :基于浏览器编辑器,可以在里面编写 Open API规范。类似Markdown 具有实时预览描述文件的功能
Swagger UI: 将 Open API规范呈现为交互式 API 文档。用可视化 UI 展示描述文件Swagger Codegen :将
OpenAPI规范生成为服务器存根和客户端库。通过 SwaggerCodegen 可以将描述文件生成 html 格式和
cwiki形式的接口文档,同时也可以生成多种言语的客户端和服务端代码。 SwaggerInspector:和Swagger
UI有点类似,但是可以返回更多信息,也会保存请求的实际参数数据。 Swagger
Hub:集成了上面所有项目的各个功能,你可以以项目和版本为单位,将你的描述文件上传到 Swagger Hub 中。

在 Swagger Hub 中可以完成上面项目的所有工作需要注册账号,分免费版和收费版使用Swagger,就是把相关的信息存储在它定义的描述文件里面(yml或json 格式)再通过维护这个描述文件可以去更新接口文档,以及生成各端代码

Springfox

使用Swagger时如果碰见版本更新或迭代时,只需要更改 Swagger的描述文件即可。但是在频繁的更新项目版本时很多开发人员认为即使修改描述文件(yml或json)也是一定的工作负担,久而久之就直接修改代码,而不去修改描述文件了,这样基于描述文件生成接口文档也失去了意义
Marty Pitt 编写了一个基 Spring的组件 swaggerSpring-fox就是根springmv据这个组件发展而来的全新项目。
Spring-fox是根据代码生成接口文档,所以正常的进行更新项目版本,修改代码即可而不需要跟随修改描述文件
Spring-fox利用自身 AOP 特性,把 Swagger 集成进来,底层还是Swagger。但是使用起来确方便很多
所以在实际开发中,都是直接使用spring-fox

使用篇

swagger的基本使用

1、引入依赖

3.0版本需要添加springboot-starter

<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
</dependency>

3.0以下的

<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
</dependency>

2、配置config

3.0.0之前版本需使用@EnableSwagger2注解
3.0.0版本则不需要@EnableSwagger2注解,取而代之是@EnableOpenApi

在这里插入图片描述
3、启动项目,访问swagger-ui界面url地址

3.0.0之前的版本访问是: /swagger-ui.html
3.0.0版本访问是: /swagger-ui/index.html

在这里插入图片描述

4、配置相关信息

在swaggerConfig中bean类中配置相关的swagger信息

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(
                new ApiInfo("TITLE",
                        "description",
                        "version",
                        "",
                        new Contact("lio","https://blog.csdn.net/weixin_58286934?type=blog","510629467@qq.com"),
                        "li",
                        "http://www.baidu.com",
                        new ArrayList<VendorExtension>()))
                //是否启动swagger
                .enable(true)
                //RequestHandlerSelectors,配置要扫描接口的方式
                // basePackage: 配置要扫描的包
                // any(): 扫描全部
                // none():不扫
                // withclassAnnotation: 扫描类上的注解
                //withMethodAnnotation:扫描方法上的注解
                .select().apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))
                //过滤 any全部拒绝 none全部放行
                .paths(PathSelectors.ant("/swag/*"))
                .build();
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/376045.html

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

相关文章

P21.为什么需要父子shell

脚本的不同执行方式是否会开启子shell 父Shell概念 &#xff08;1&#xff09;pstree查看父进程 如下命令安装pstree yum install -y psmiscsshd--sshd--bash--pstree 第一个sshd为操作系统自己启动的监听sshd服务的程序第二个sshd是shell连接过来启动的shell每次调用bash…

echarts scatter地图上渲染圆点

目录 实现效果实现步骤相关文件实现效果 如上图所示,我们经常遇到一些需求,在地图上根据数据的大小,再画一些直径不一的实心圆。 首先,我们得先把地图画好,再来画这些跟数据有关联的圆形。 为了方便scatter建立坐标系,我们采用geo来自定义绘制地图,而不是使用百度地图或…

前端面试题 —— 计算机网络(二)

目录 一、POST和PUT请求的区别 二、GET方法URL长度限制的原因 三、页面有多张图片&#xff0c;HTTP是怎样的加载表现&#xff1f; 四、HTTP2的头部压缩算法是怎样的&#xff1f; 五、说一下HTTP 3.0 六、HTTP协议的性能怎么样&#xff1f; 七、数字证书是什么&#xff1f…

DC-3 靶场学习

文章目录环境配置&#xff1a;信息搜集&#xff1a;漏洞利用&#xff1a;获取FLAG&#xff1a;环境配置&#xff1a; 还是让DC-3的靶场和kali处于同于网段即可。 DC-3靶场还需要修改一下CD/DVD设置&#xff08;如下&#xff09;。 信息搜集&#xff1a; 首先还是要获取靶机的…

市场上有很多低代码开发平台,不懂编程的人可以用哪些?

市场上有很多低代码开发平台&#xff0c;不懂编程的人可以用哪些&#xff1f;这个问题一看就是外行问的啦&#xff0c;低代码平台主打的就是一个“全民开发”&#xff0c;而且现在很多低代码平台都发展为零代码了&#xff0c;不懂编程也完全可以使用&#xff01; 所谓低代码开…

一三九、vim使用介绍

键盘图 模式切换 移动光标 命令说明shift 6()至本行第一个非空字符shift 4($)至本行末尾w至下一个单词、标点开头W至下一个单词开头b至上一个单词、标点开头B至上一个单词开头ctrl b上翻一页ctrl f下翻一页ctrl d向下翻半页 此比较有用ctrl u向上翻半页 此比较有用gg文件开…

优思学院|DMAIC从入门到精通,轻松学会六西格玛的基本原理!

如果要用一个词汇总结六西格玛品质改进方法&#xff0c;那一定是DMAIC。这个简称列出了六西格玛过程改进中的步骤&#xff0c;提供了完成六西格玛项目的方法概述&#xff0c;就是&#xff1a;定义&#xff08;Define&#xff09;、测量&#xff08;Measure&#xff09;、分析&a…

Rust语言的基本介绍

rust缘起和目标 rust的英文是锈菌&#xff0c;是一种真菌&#xff0c;这种真菌的生命力非常顽强&#xff0c;其 在生命周期内可以产生多达5种孢子类型&#xff0c;这5种生命形态还可以相互转 化。“Rust”也有“铁锈”的意思&#xff0c;暗合“裸金属”之意&#xff0c;代表了R…

网络安全入门(黑客)学习路线-2023最新版

如何成为一名黑客&#xff0c;很多朋友在学习安全方面都会半路转行&#xff0c;作者菌就自个整理了一下知识内容和体系&#xff0c;肝了一个月后&#xff0c;整理出来最适合零基础学习的网络安全学习路线&#xff0c;果断收藏学习下路线。此篇博客讲的非常细&#xff0c;有兴趣…

Python中sys.argv[ ]与Cpp中int main(int argc char *argv[ ])的用法

Python中sys.argv[ ]与Cpp中int main(int argc char *argv[ ])的用法 文章目录Python中sys.argv[ ]与Cpp中int main(int argc char *argv[ ])的用法前言一、Python中sys.argv[]的用法二、Cpp中int main(int argc char *argv[])的用法Reference前言 最近在学习ROS&#xff0c;在…

前端纯函数和副作用概念,且在react上的体现详解

什么是纯函数 纯函数是这样一种函数&#xff0c;即相同的输入&#xff0c;永远会得到相同的输出的函数&#xff0c;而且没有任何可观察的副作用。 什么是副作用 副作用是在计算结果的过程中&#xff0c;系统状态的一种变化&#xff0c;或者与外部世界进行的可观察的交互。 个…

CAN工具 - ValueCAN - 基础介绍(续)

VSpy3&#xff08;Vehicle Spy 3的简写&#xff09;&#xff0c;作为一个常用的车载总线仿真工具&#xff0c;在车载网络领域也是有非常大的市场&#xff0c;前面也简单介绍过一些简单的功能&#xff0c;今天就再次介绍一些。什么是VSpy3&#xff1f;VSpy3是美国英特佩斯公司下…

测试用例设计经典面试题——电梯,杯子,笔,桌子,洗衣机

首先说明的是&#xff0c;遇到这样的测试题目&#xff0c;首先应该反问面试官&#xff0c;需求是什么样的&#xff0c;比如是测什么样的杯子。 因为设计测试用例的规则应该是根据需求分析文档设计用例&#xff0c;客户需求什么&#xff0c;就测试什么。但是在没有需求分析文档…

如何准备pmp考试?(含备考资料)

一、复习计划的制定根据之前在培训班共同奋斗的小伙伴学习时间统计&#xff0c;平均每天的学习时间是在 3-4 小时左右&#xff0c;基本上是白天 1 小时晚上 3 小时左右&#xff0c;通过率基本都在 80% 左右&#xff0c;最好的时候能达到 90%&#xff0c;大概的学习安排如下&…

【科研】【ReID】科研论文怎么写?八股文写作思路

拿 Densely Semantically Aligned Person Re-Identification 这篇文章举例。 本文写作非常好&#xff0c;写的很有逻辑&#xff0c;很标准。科研论文虽然是八股文&#xff0c;但是能经历了百年的发展而来&#xff0c;有它的合理性。我把它Introduction的写作思路跟一下&#x…

buuctf13(perl脚本GET open命令漏洞redis主从复制xssssti关键字过滤绕过csrf)

目录 <1> [HITCON 2017]SSRFme(perl脚本GET open命令漏洞) <2> [网鼎杯 2020 玄武组]SSRFMe(SSRF结合redis主从复制RCE) <3> [GWCTF 2019]mypassword(xss获取保存的cookie内容) <4> [GWCTF 2019]你的名字(ssti {{和关键字绕过) (1) {{ 和 }} 过滤绕…

C++ STL:空间配置器

文章目录1、allocator 接口层1.1、接口层源码1.2、定位 new 表达式1.3、实例2、allocator 实现层2.1、一级空间配置器2.2、二级空间配置器allocatedeallocate源码流程分析3、allocator 问题背景&#xff1a;频繁使用 malloc 分配内存的造成的问题&#xff1a; 系统调用&#x…

js红宝书学习笔记(1-6章)

就按照原书中写的章节顺序记笔记了&#xff0c; 还有可能我学过js一段时间了&#xff0c;可能有些对于新手的细节会忽略&#xff0c;但是会尽量写全的~ 1.第一章 什么是JavaScript 1.1讲了一些历史&#xff0c;所以我们从1.2开始看 1.2 JavaScript的实现 完整的JaveScript包…

JVM内存溢出与内存泄露

1. 什么是内存溢出? 当前创建的对象的大小大于可用的内存容量大小&#xff0c;发生内存溢出。2. 什么是内存泄露? 该回收的垃圾对象没有被回收&#xff0c;发生了内存泄露&#xff0c;垃圾对象越堆越多&#xff0c; 可用内存越来越少&#xff0c;若可用内存无法存放新的垃圾…

【神经网络】LSTM为什么能缓解梯度消失

1.LSTM的结构 我们先来看一下LSTM的计算公式&#xff1a; 1.遗忘门&#xff1a; 2.输入门&#xff1a; 3.细胞状态 4.输出门 2.LSTM的梯度路径 根据LSTM的计算公式&#xff0c;可以得出LSTM的cell state与、、都存在计算关系&#xff0c;而、、的计算公式又全部都与有关&#x…