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

swagger2升级至openapi3的利器--swagger2openapi

背景:

        因为项目需要升级JDK,涉及到swagger2升级至openapi3的情况。由于swagger 2和openapi 3的语法差距太大,需要对yaml进行升级。无奈单个yaml文件的内容太大,高至4万多行,手动进行语法的转换肯定是不可能了,swagger 3提供的在线编辑器当遇到文件过大时,页面也会宕机。所以,我们需要借助工具来实现语法间的转换,于是,我找到了swagger2openapi这个工具。

什么是 swagger2openapi?

        官网对其介绍很简单,一句话概括了:Convert Swagger 2.0 definitions into OpenApi 3.0.x。swagger2openapi 是一个开源工具,用javascript写的,托管在GitHub 上,并通过 npm 发布。

安装 swagger2openapi:

        因为swagger2openapi 是一个 Node.js 工具,所以需要 Node.js 环境,如果没有Node.js,则需要先安装Node.js,这里就不介绍Node.js的安装方式了,需要的自行百度。需要注意的是Node.js的版本问题,比如,我使用的swagger2openapi的版本是7.0.8,他需要Node 12的版本。接下来回到swagger2openapi的安装部分:

命令行输入以下命令,全局安装的模式:

npm install -g swagger2openapi

验证安装是否成功:

swagger2openapi --version

如果输出了版本信息,说明安装成功了。

使用方法:

        swagger2openapi 提供了多种使用方式,包括命令行、Node.js 模块、Docker 和 VS Code 扩展。下面就介绍命令行的使用吧,其他的请参考官网。

命令行使用,基本语法:

swagger2openapi [options] <input-file> [--outfile <output-file>]

 举个例子:

swagger2openapi swagger.yaml -o openapi.yaml –-patch

强烈建议加上--patch参数,它可以修复一些小的问题,比如,openapi要求某些参数必须有description,加上--patch参数,就可以在转换的同时,自动帮你加上。

转换完成之后就是验证工作了,它转换出来的可能并不是完美的,所以,需要根据编译的结果进行修复。但是可以解决大部分的问题,已经提高了不少效率了。

另外,这个工具转换速度很快,相当推荐!

相关文章:

swagger2升级至openapi3的利器--swagger2openapi

背景&#xff1a; 因为项目需要升级JDK&#xff0c;涉及到swagger2升级至openapi3的情况。由于swagger 2和openapi 3的语法差距太大&#xff0c;需要对yaml进行升级。无奈单个yaml文件的内容太大&#xff0c;高至4万多行&#xff0c;手动进行语法的转换肯定是不可能了&#xff…...

私有云与虚拟化攻防2(OpenStack渗透场景,大部分云平台都是基于此进行二次开发)

虚拟化和私有云的一些区别 虚拟化只是简单资源虚拟化,一虚多私有云除了能够实现虚拟化以外更重要的是服务自助化、自动化什么是Openstack OpenStack是一个开源的云计算管理平台项目,是属于基础设施即服务(IaaS),是一个云操作系统。 Nova(控制 ) 提供计算资源,虚拟机、容…...

前缀和 后缀和 --- 寻找数组的中心下标

题目链接 寻找数组的中心下标 给你一个整数数组 nums &#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端&#xff0c;那么左侧数之和视为 0 &#xff0c;因为…...

关于插值和拟合(数学建模实验课)

文章目录 1.总体评价2.具体的课堂题目 1.总体评价 学校可以开设这个数学建模实验课程&#xff0c;我本来是非常的激动地&#xff0c;但是这个最后的上课方式却让我高兴不起哦来&#xff0c;因为老师讲的这个内容非常的简单&#xff0c;而且一个上午的数学实验&#xff0c;基本…...

深入学习解读:《数据安全技术 数据分类分级规则》【附全文阅读】

该文详细阐述了数据安全技术的数据分类分级规则,内容分为基本原则、数据分类规则、数据分级规则及数据分类分级流程四大部分。 基本原则强调科学实用、动态更新、就高从严及53原则(虽表述不清,但可理解为多重原则的结合),同时要求边界清晰、点面结合。 数据分类规…...

Windows环境下用pyinstaller将python脚本编译为exe文件

下载 https://pypi.org/project/pyinstaller/#filespyinstaller-6.13.0-py3-none-win_arm64.whl 安装 cmd命令行中执行&#xff1a;pip install pyinstaller-6.13.0-py3-none-win_amd64.whl得先安装pythonpip若找不到命令&#xff0c;需要加到环境变量 测试 pyinstaller --ve…...

每日算法-250429

每日 LeetCode 题解 (2025-04-29) 大家好&#xff01;这是今天的 LeetCode 刷题记录&#xff0c;主要涉及几道可以使用贪心策略解决的问题。 2037. 使每位学生都有座位的最少移动次数 题目描述: 思路 贪心 解题过程 要使总移动次数最少&#xff0c;直观的想法是让每个学生…...

Go语言Context机制深度解析:从原理到实践

一、Context概述 Context&#xff08;上下文&#xff09;是Go语言并发编程的核心机制之一&#xff0c;主要用于在goroutine之间传递取消信号、截止时间和其他请求范围的值。Google在Go 1.7版本中将其引入标准库&#xff0c;现已成为处理并发控制和超时的标准方案。 核心作用 …...

大数据学习(115)-hive与impala

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…...

php学习笔记(全面且适合新手)

以下是专为 PHP 7.4 初学者设计的全面学习文档&#xff0c;涵盖基础语法、细节语法和进阶语法&#xff0c;结合 PHP 7.4 新特性与实战案例&#xff0c;帮助系统掌握 PHP 开发&#xff1a; 为什么特地做7.4的笔记而不做8的&#xff1f;因为公司用的7.4&#xff0c;哈哈 一、基…...

Nginx核心功能

目录 一&#xff1a;基于授权的访问控制 1&#xff1a;基于授权的访问控制简介 2&#xff1a;基于授权的访问控制步骤 &#xff08;1&#xff09;使用htpasswd 生成用户认证文件 &#xff08;2&#xff09;修改密码文件权限为400&#xff0c;将所有者改为nginx&#xff0c;…...

基于Spring Boot 电商书城平台系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

流量控制机制

基于信用&#xff08;credit-based&#xff09;的流量控制机制 在基于信用的流量控制中&#xff0c;每个下游路由器都维护了一个信用计数器&#xff0c;用于跟踪其可用的缓冲空间。当一个数据包&#xff08;或者说flit&#xff09;被成功接收后&#xff0c;下游路由器会向上游…...

ImageDataGenerator ()用法简介

ImageDataGenerator 是 Keras 中用于图像数据增强和预处理的工具。它允许你实时生成增强的图像数据,这在训练深度学习模型时特别有用,因为它可以帮助提高模型的泛化能力。 以下是 ImageDataGenerator 的一些常见用法和参数: 基本用法 ‌导入模块‌ from keras.preprocessi…...

【Linux】服务自启动设置的方式

关于服务自启动设置的方式,本文将介绍两种方法。分别是systemd服务单元文件的配置和起容器的方式。 目录 1 systemd服务单元文件的配置 [Unit] 部分 [Service] 部分 [Install] 部分 2 docker 1 systemd...

Wi-SUN与LoRa和NB-IoT通信技术的对比

LoRa和NB-IoT也都是LPWAN&#xff08;低功耗广域网&#xff09;的一种&#xff0c;不同的是他们分处在不同的频段。分为授权频段和非授权频段。&#xff08;NB-IoT&#xff09;其采用现有的3G、4G网络&#xff0c;需要通过电信运营商申请才可以使用。使用非授权频段的技术主要为…...

科研入门规划

作为研0学生&#xff0c;建议采取 ​​“边打基础边探索&#xff0c;逐步深入”​​ 的策略。 ​​&#x1f4cc; 阶段一&#xff1a;先建立基础框架&#xff08;前1-3个月&#xff09;​​ ​​1. 快速搭建知识框架​​ ​​目标​​&#xff1a;了解领域全貌&#xff0c;明…...

《P3143 [USACO16OPEN] Diamond Collector S》

题目描述 奶牛 Bessie 一直喜欢闪闪发光的物体&#xff0c;她最近在业余时间开始了一项爱好——挖掘钻石&#xff01;她收集了 N 颗大小各不相同的钻石&#xff08;N≤50,000&#xff09;&#xff0c;并希望将它们中的一部分放在谷仓里的两个展示柜中展示。 由于 Bessie 希望…...

纯C协程框架NtyCo

原文是由写的&#xff0c;写的真的很好&#xff0c;原文链接&#xff1a;纯c协程框架NtyCo实现与原理-CSDN博客 1.为什么会有协程&#xff0c;协程解决了什么问题&#xff1f; 网络IO优化 在CS&#xff0c;BS的开发模式下&#xff0c;服务器的吞吐量是一个受关注的参数&#x…...

16、路由守卫:设置魔法结界——React 19 React Router

一、魔法结界的本质 "路由守卫是霍格沃茨城堡的隐身斗篷&#xff0c;在时空裂隙中精准控制维度跃迁&#xff01;" 魔法部交通司官员挥舞魔杖&#xff0c;React Router 的嵌套路由在空中交织成星轨矩阵。 ——基于《国际魔法联合会》第7号时空协议&#xff0c;路由守…...

try catch + throw

异常 java语言中将&#xff0c;将程序执行中发生的不正常情况称为“异常”。&#xff08;1&#xff09;Error&#xff1b;JVM系统内部错误&#xff0c;资源耗尽严重。&#xff08;2&#xff09;Execption&#xff1a;运行时异常&#xff0c;编译时异常。 异常体系图 异常处理…...

【东枫电子】AI-RAN:利用人工智能驱动的计算基础设施变革 RAN

太原市东枫电子科技有限公司&#xff0c;翻译 文章目录 摘要一、引言二、AI-RAN 的用例三、AI-RAN 的需求与赋能因素四、参考架构设计五、AI-RAN 概念验证六、结论与未来工作REFERENCES 摘要 无线接入网络 (RAN) 格局正在经历从传统的以通信为中心的基础设施向融合计算通信平台…...

【Linux】第十四章 提高命令行效率

1. #!/bin/bash 是什么意思&#xff1f; #!/bin/bash 出现在 shell 脚本第一行的开头&#xff0c;意味着使用bash shell 命令解释器来执行脚本。 2. PATH变量有什么重要作用&#xff1f; PATH 的作用是告诉操作系统在哪些目录下寻找需要运行命令程序&#xff0c;从而不需要输…...

Lucene中不同搜索类型的使用方法、基本概念、应用场景、差异对比,并通过表格进行总结

为了详细说明Lucene中不同搜索类型的使用方法、差异对比&#xff0c;并通过表格进行总结&#xff0c;我们首先需要理解每种搜索类型的基本概念和应用场景。以下是针对每种搜索类型的简要说明、差异对比以及最终的表格总结。 1. 多字段搜索&#xff08;MultiFieldQueryParser&am…...

【自然语言处理与大模型】LangChain大模型应用框架入门①

单独为LangChain花大概五篇文章的内容&#xff0c;来和大家一起入门LangChain&#xff0c;这是第一篇重点放在&#xff0c;了解 LangChain 是什么、它的主要用途以及核心模块。了解 LangChain 的设计哲学&#xff1a;链式调用、模块化、可扩展性。安装并学习其中的一个组件&…...

OpenJDK 1.8中-Xloggc参数下GC日志覆盖与追加模式深度解析

#作者&#xff1a;邓伟 文章目录 一、引言二、覆盖模式详解2.1 默认覆盖行为2.2 覆盖模式的适用场景 三、追加模式&#xff08;日志轮换&#xff09;深度解析3.1 追加模式的实现&#xff1a;日志轮换配置3.2 日志轮换的底层逻辑3.3 追加模式&#xff08;日志轮换&#xff09;适…...

【Java面试笔记:进阶】28.谈谈你的GC调优思路?

在JVM的GC调优中,没有放之四海而皆准的方案,需要结合业务场景、硬件资源和GC特性进行系统性分析。 1.GC调优的基本思路 1.明确调优目标 内存效率(Footprint):减少JVM的内存占用(如边缘设备部署)。低延迟(Latency):降低GC导致的停顿时间(如API网关要求99.9%请求延迟…...

C#中winform窗体如何捕获键盘按键事件

马工撰写的年入30万+C#上位机项目实战必备教程(点击下方链接即可访问文章目录) 1、《C#串口通信从入门到精通》 2、《C#与PLC通信从入门到精通 》 3、《C# Modbus通信从入门到精通》 4、《C#Socket通信从入门到精通 》 5、《C# MES通信从入门到精通》 6、《winform控件从入门…...

USB 网卡——RNDIS 控制消息流程

文章目录 RNDIS 控制消息流程控制写设备回复控制读注意事项RNDIS 控制消息流程 RNDIS 控制消息流程分为三步 控制写(控制端点 0)设备回复(中断端点)控制读(控制端点 0)数据抓包如下 控制写 设备的控制通道是通过 USB 控制端点完成的。 从主机到设备的控制消息作为 SE…...

【AI News | 20250429】每日AI进展

AI Repos 1、aci ACI.dev是一个开源基础设施层&#xff0c;旨在为AI智能体的工具使用提供支持。它通过统一的模型-上下文-协议&#xff08;MCP&#xff09;服务器或轻量级Python SDK&#xff0c;使智能体能够以感知意图的方式访问600多种工具&#xff0c;并具备多租户认证、细…...

JavaScript 中深拷贝浅拷贝的区别?如何实现一个深拷贝?

一、区别&#xff1a;像“复印文件” vs “创建副本文件” 1. 浅拷贝&#xff08;Shallow Copy&#xff09; 动作&#xff1a;只复制文件的第一页&#xff0c;其他页用“贴标签”指向原文件。结果&#xff1a; 修改第一层属性不影响原对象&#xff0c;但修改嵌套对象会同时改…...

<四级词汇>2025.4.29

compact---所有的人都拍他 越拍越紧 ---紧凑的 impact 往里拍他 -- 碰撞会产生影响 --- 碰撞 影响 influence -- 影响 flue -- 流感 influenza -- 流感 fluent --- fly enter 鸟儿流利飞进屋子 --- 流利的 fluently affluent --- 一再地生活的很流畅 -- 富裕的 …...

mmap核心原理和用途及其与内存映射段的关系

mmap 是 Linux/Unix 系统中的一个关键系统调用&#xff0c;全称是 Memory Map&#xff08;内存映射&#xff09;。它的核心功能是将 文件、设备或匿名内存 直接映射到进程的虚拟地址空间&#xff0c;从而实现高效的内存访问和操作。以下是其核心原理和用途的详细说明&#xff1…...

深入理解 Web Service:原理、组件与核心技术详解

目录 前言1 Web Service 概述2 Web Service 的三大核心角色2.1 服务提供者&#xff08;Service Provider&#xff09;2.2 服务请求者&#xff08;Service Consumer&#xff09;2.3 服务注册中心&#xff08;Service Registry&#xff09; 3 Web Service 核心技术详解3.1 WSDL&a…...

【动态导通电阻】GaN功率器件中动态导通电阻退化的机制、表征及建模方法

2019年,浙江大学的Shu Yang等人在《IEEE Journal of Emerging and Selected Topics in Power Electronics》上发表了一篇关于GaN(氮化镓)功率器件动态导通电阻(Dynamic On-Resistance, RON)的研究论文。该文深入探讨了GaN功率器件中动态导通电阻退化的机制、表征方法、建模…...

AWS SQS 队列策略配置指南:常见错误与解决方案

在 AWS 云服务中,Simple Queue Service (SQS) 是一种完全托管的消息队列服务,广泛应用于分布式系统组件间的解耦。为了确保队列的安全访问,正确配置队列策略至关重要。本文将详细介绍 SQS 队列策略的配置方法,常见错误及其解决方案。 SQS 队列策略基础 SQS 队列策略是基于…...

【后端】【Docker】 Docker 动态代理 取消代理完整脚本合集(Ubuntu)

&#x1f680; Docker 动态代理 & 取消代理完整脚本合集(Ubuntu) 一、动态设置 Docker 代理脚本 支持自定义输入代理地址和端口&#xff01; &#x1f4c4; 脚本内容&#xff08;保存为 set_docker_proxy.sh&#xff09; #!/bin/bash# 读取用户输入 read -p "请输入…...

Java基础学习内容大纲

Java基础学习内容大纲 第一阶段:建立编程思想 ​ Java概述:如何快速学习Java技术、Java历史、Java特点、Sublime、Java运行机制、JDK、转义字符、Java开发规范、Java API ​ 变量:数据类型、变量基本使用、数据类型转换 ​ 运算符:运算符介绍、算数运算符、关系运算符、…...

[USACO08DEC] Hay For Sale S Java

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int c sc.nextInt(); // 背包容量int h sc.nextInt(); // 物品数量int[] v new int[h 1];for (int i 1; i < h; i) v[i] sc.nextInt();int[] dp …...

碰到的 MRCPv2 串线以及解决思路

最近碰到了一个朋友的 MRCPv2 串线&#xff0c;表现大约是&#xff1a; fs1 和 fs2 同时发到 mrcp server 的同一个 rtp 端口 目前尚不清楚 mrcp server 是否能避免这种情况&#xff08;其实是有思路的&#xff0c;接收到 rtp 包时检查网络地址和网络端口跟 sip 协商的是否一…...

AI正当时,国内AI HR领先厂商易路如何从“单点突破”到“全面融合”

所谓AI HR‌&#xff0c;是指将人工智能&#xff08;AI&#xff09;技术&#xff08;如机器学习、自然语言处理、大数据分析等&#xff09;应用于人力资源管理的各个环节&#xff0c;以提升效率、优化决策并改善员工体验。典型场景有&#xff1a; 在招聘、考勤、薪酬计算等重复…...

MCP 哪家强?深度分析 Cline、Cursor、Trae、Coze 四大平台

想象一下&#xff1a;你只需一句话&#xff0c;AI就能自动抓取GitHub issue、生成代码、调试UI&#xff0c;甚至帮你写博客发到Substack&#xff01;这不是科幻&#xff0c;而是**Model Context Protocol (MCP)**的现实。MCP作为AI与工具交互的“通用语言”&#xff0c;自2024年…...

【最新 MCP 战神手册 09】利用资源和提示增强上下文

文章目录 1. 开始啦!2. 第一部分:通过资源解锁应用数据3. 第二部分:用提示引导 AI4. 第三部分:高效上下文管理策略1. 开始啦! 在上一章中,我们深入探讨了 MCP 工具——这些组件使得 AI 模型能够执行各种操作。然而,操作很少在真空中发生。为了让 AI 智能地行动,它需要…...

解决vue3 路由query传参刷新后数据丢失的问题

前言&#xff1a;在页面刷新的时候&#xff0c;路由query数据会被清空&#xff0c;网上很多方法说query传参可以实现&#xff0c;反正我是没有实现 思路&#xff1a;将数据保存到本地&#xff0c;通过 “ &#xff1f;” 进行判断是否有数据&#xff0c;页面销毁的时候删除本地…...

VUE篇之树形特殊篇

根节点是level:1, level3及其子节点有关联&#xff0c;但是和level2和他下面的子节点没有关联 思路&#xff1a;采用守护风琴效果&#xff0c;遍历出level1和level2级节点&#xff0c;后面level3的节点&#xff0c;采用树形结构进行关联 <template><div :class"…...

Qwen多模态系列论文

From:https://www.big-yellow-j.top/posts/2025/04/28/QwenVL.html 本文主要介绍Qwen-vl系列模型包括&#xff1a;Qwen2-vl、Qwen2.5-vl Qwen2-vl http://arxiv.org/abs/2409.12191 模型结构&#xff1a; Qwen2-vl主要的改进点在于&#xff1a;1、使用动态分辨率&#xff08…...

Astro大屏中关于数据流转的数据接入与数据中心之间的逻辑关系梳理

在 Astro 大屏中&#xff0c;「数据接入」与「数据中心」是紧密关联的一对模块&#xff0c;分别承担“数据从哪来”和“数据怎么管”的职责。为了更形象地帮助初学者理解&#xff0c;我可以用“自来水系统”的比喻来解释整个原理与操作逻辑&#xff1a; &#x1f3e0; 形象比喻…...

【今日三题】小红的ABC(找规律) / 不相邻取数(多状态dp) / 空调遥控(排序+二分/滑动窗口)

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;每日两三题 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 小红的ABC(找规律)不相邻取数(多状态dp)空调遥控(排序二分/滑动窗口) 小红的ABC(找规律) 小红的ABC 找最短回文串&#xff…...

双重差分模型学习笔记(理论)

【DID最全总结】90分钟带你速通双重差分&#xff01;_哔哩哔哩_bilibili 一、DID的基本原理 &#xff08;一&#xff09; 单重差分 1. Cross-Section Comparison 截面数据 只有某个时间点事件发生后的数据 D1 事件发生后 D0 事件发生前 2. Befor-After Vomparison 时间序列…...

企业级私有化部署,内部聊天软件

如何在激烈的市场竞争中脱颖而出&#xff0c;提升工作效率、降低运营成本&#xff0c;同时保障信息安全&#xff0c;成为众多企业管理者亟待解决的问题。而BeeWorks 企业级私有化部署的内部聊天软件&#xff0c;无疑是为这一难题提供了一把金钥匙。 BeeWorks覆盖即时通讯&#…...