OpenAPI 规范 (YML/YAML):所有 $refs 替换或扩展为其定义(带有模式验证)

2024-02-29

我正在寻找一些解决方案或者一些脚本,可以帮助我通过模式验证替换($ref)或扩展其在 YML 文件中的定义。 (具体请看下面的例子)

**示例:使用 $ref 输入 **

  /pets/{petId}:
    get:
      summary: Info for a specific pet
      operationId: showPetById
      tags:
        - pets
      parameters:
        - name: petId
          in: path
          required: true
          description: The id of the pet to retrieve
          schema:
            type: string
      responses:
        '200':
          description: Expected response to a valid request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Pet"
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
components:
  schemas:
    Pet:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        tag:
          type: string
    Pets:
      type: array
      items:
        $ref: "#/components/schemas/Pet"
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string

输出:所有 $ref 替换或扩展为其定义(使用模式验证)

  /pets/{petId}:
    get:
      summary: Info for a specific pet
      operationId: showPetById
      tags:
        - pets
      parameters:
        - name: petId
          in: path
          required: true
          description: The id of the pet to retrieve
          schema:
            type: string
      responses:
        '200':
          description: Expected response to a valid request
          content:
            application/json:
              schema:
                type: object
                required:
                  - id
                  - name
                properties:
                  id:
                    type: integer
                    format: int64
                  name:
                    type: string
                  tag:
                    type: string

        default:
          description: unexpected error
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - message
                properties:
                  code:
                    type: integer
                    format: int32
                  message:
                    type: string
components:
  schemas:
    Pet:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        tag:
          type: string
    Pets:
      type: array
      items:
        type: object
        required:
          - id
          - name
        properties:
          id:
            type: integer
            format: int64
          name:
            type: string
          tag:
            type: string

    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string

你能建议一下吗?


这里有一些工具声称除了外部 $refs 之外还能够取消引用内部 $refs。请注意循环 $refs 的潜在问题。

CLI:

  • https://github.com/APIDevTools/swagger-cli https://github.com/APIDevTools/swagger-cli

    swagger-cli bundle --dereference <file>
    
  • Redocly OpenAPI CLI https://redoc.ly/docs/cli/commands/#how-to-make-a-fully-dereferenced-bundle

    openapi bundle --dereferenced --output <outputName> --ext <ext> [entrypoints...]
    

图书馆:

  • Java: Swagger 解析器 https://github.com/swagger-api/swagger-parserresolvefully https://github.com/swagger-api/swagger-parser#2-resolvefully option
  • 节点.js:oas 解析器 https://github.com/Mermade/oas-kit/tree/master/packages/oas-resolverresolveInternal https://github.com/Mermade/oas-kit/blob/master/docs/options.md option
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenAPI 规范 (YML/YAML):所有 $refs 替换或扩展为其定义(带有模式验证) 的相关文章

  • Spring MVC - 从 JSP 提交对象

    我有一个显示客户列表的 JSP ArrayList searchResults 我希望能够选择其中之一 并将其 提交给 Spring MVC 控制器 但是 我似乎无法传递所选对象 只能传递它的属性 例如 customerId 我真的需要传递
  • 读取Excel文件时的Pandas数据框和字符编码

    我正在阅读一个包含多个数值和分类数据的 Excel 文件 name string 列包含外语字符 当我尝试查看 name string 列的内容时 我得到了我想要的结果 但外来字符 在 Excel 电子表格中正确显示 以错误的编码显示 这是
  • 在 Eclipse 中编写链接特定行的注释

    我正在 Java 中使用 Eclipse 并且处理很长的类 我需要这样的功能 在方法的顶部注释中 例如 有一个由该方法执行的操作列表 对于列出的每个操作 我想将注释的一部分 超链接 到相关代码的特定行 然后使用 Ctrl Click 到该行
  • 从 MySql 迁移:MariaDB 服务器意外关闭客户端连接

    由于许可 商业使用原因 我们正在从 MySql 迁移到 MariaDB 我们已经成功用 MariaDB 客户端 jar 替换了 MySql 连接器 jar 第一次更改 现在正在尝试用 MariaDB 服务器替换 MySql 服务器而不更改数
  • Python elasticsearch DSL 聚合/每个文档嵌套值的度量

    我试图找到 2 级嵌套中的最小值 每个文档单独的最小值 到目前为止 我能够进行聚合 计算搜索结果中所有嵌套值的最小值 但无需按文档进行分隔 我的示例架构 class MyExample DocType myexample id Intege
  • 如何将 HTML 转换为保留换行符的文本

    我如何将 HTML 转换为保留换行符的文本 由 br p div 等元素生成 可能使用NekoHTML http nekohtml sourceforge net 或任何足够好的 HTML 解析器 Example Hello br Worl
  • 如何更新 certifi 的根证书?

    我正在使用 certifi python 模块来验证 ssl 连接 我查看了 certifi python2 7 site packages certifi cacert pem 中包含的根证书 其中一些证书已过期 我如何更新这些证书 我尝
  • 当按下 flutter 中编写的按钮时,有没有办法运行 python 脚本?

    本质上 我想做的是 按下我在 Flutter 中编程的按钮 当按下该按钮时 Python 脚本应该开始在我的 Android 设备上运行 我想在 python 中使用 youtube dl 用于下载 Youtube 视频 库 但我想知道是否
  • Numpy - 两个矩阵的行之间的协方差

    我需要计算两个不同矩阵的每一行之间的协方差 即第一个矩阵的第一行与第二个矩阵的第一行之间的协方差 依此类推 直到两个矩阵的最后一行 我可以在没有 NumPy 的情况下使用下面附加的代码来完成此操作 我的问题是 是否可以避免使用 for 循环
  • 利用“写入时复制”将数据复制到 Multiprocessing.Pool() 工作进程

    我有一点multiprocessingPython 代码看起来有点像这样 import time from multiprocessing import Pool import numpy as np class MyClass objec
  • FileNotFoundException(系统找不到指定的路径)

    我得到这个例外 java io FileNotFoundException C filename xml The system cannot find the path specified 使用此代码 FileWriter fileWrit
  • 如果 Django 中的表单字段与 Python 关键字同名,如何声明该字段?

    我在 Django 中有一个简单的表单 看起来像这样 class SearchForm forms Form text forms CharField from forms DateField until forms DateField 失
  • 什么触发了java垃圾收集器

    我对 Java 中垃圾收集的工作原理有点困惑 我知道当不再有对某个对象的实时引用时 该对象就有资格进行垃圾回收 但是如果它有对实时对象的引用怎么办 可以说我有一个节点集合 它们再次引用更多节点 List 1 gt Node a gt Nod
  • pytube 在 Android 中传输视频所需的时间太长

    我在用pytube在 Android 中流式传输视频 借助chaquopy 视频文件 py from pytube import YouTube def video link yt YouTube f https www youtube c
  • 错误:线条魔术函数

    我正在尝试使用 python 读取文件 但不断收到此错误 ERROR Line magic function user vars not found 我的代码非常基本 names read csv Combined data csv nam
  • 三角形未在 OSX 上的 OpenGL 2.1 中绘制

    我正在学习有关使用 OpenGL 在 Java 中创建游戏引擎的教程 我正在尝试在屏幕上渲染一个三角形 一切运行良好 我可以更改背景颜色 但三角形不会显示 我还尝试运行作为教程系列的一部分提供的代码 但它仍然不起作用 教程链接 http b
  • 为什么“模型尚未加载”?

    我正在尝试使用 customUser 安装 django registration redux 我已将其包含在我的 settings py 中 AUTH USER MODEL app customUser 注册表位于目录 registrat
  • 连接字符串:两个字符串列表的“乘法”[重复]

    这个问题在这里已经有答案了 对于字符串列表 将乘法运算定义为连接 l1 aa bb cc l2 11 22 l3 l1 op l2 预期输出 l3 aa11 aa22 bb11 bb22 cc11 cc22 我们可以简单地使用 for l
  • 字典条目被覆盖? [复制]

    这个问题在这里已经有答案了 我发现一些输入没有存储在 Python 3 的字典中 运行这段代码 N int input How many lines of subsequent input graph for n in range N st
  • 用 Ruby 或 Python 解析 SVG 的库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 SVG 是一个庞大的标准 它基于 XML 我过去曾将 SVG 解析为 XML 然而 有些事情很难 例如

随机推荐

  • PostgreSQL 如何查找最近 n 分钟内的任何更改

    我正在编写一个同步 PostgreSQL 和 MS SQL 服务器数据库的程序 并在此转换中添加一些更改 对于数百万条记录 需要很长时间 并且服务器负载非常糟糕select 它还需要更多资源来解析未更改的记录并根据 MS SQL 服务器验证
  • 告诉 SBT 将我所有的依赖项收集在一起

    构建 Web 应用程序时 SBT 能够将所有 jar 依赖项收集到 WAR 文件中 是否可以让 SBT 将我在非 Web 应用程序中依赖的所有 jar 放入一个目录中 以便我在运行应用程序时可以轻松地将它们放入我的类路径中 是的 您可以在项
  • 在父子表单无序列表中打印分层数据php?

    我在父子层次结构中的 mysql 表中有数据 例如 msg id parent id msg 1 NULL msg1 2 NULL msg2 3 NULL msg3 4 1 msg1 child1 5 1 msg1 child2 6 3 m
  • 为asp.net中的慢速页面添加实时进度更新

    我正在尝试向我的 c asp net 4 0 应用程序添加一个实时进度报告 以解决加载缓慢的页面 我查看了 UpdatePanel 和 UpdateProgress Ajax 控件 但我认为它们不合适 基本上 当用户单击按钮时 页面会执行许
  • 确定当前粘贴板内容的源应用程序

    AppStore 中的多个 OSX 剪贴板管理器显示了确定复制到剪贴板的内容的源应用程序的能力 我正在编写一些简单的剪贴板观察器 并希望在内容附近显示源应用程序图标 存储在通用 NSPasteboard 中 我想知道如何实现这一目标 据我所
  • ValueError:groupby Pandas 中的“无法从重复轴重新索引”

    我的数据框如下所示 SKU GRP CATG PRD 0 54995 9404000 4040 99999 1 54999 9404000 4040 99999 2 55037 9404000 4040 1556894 3 55148 94
  • 串行端口“关闭”事件永远不会触发

    我正在使用nodeJSSerialPort用于连接计算机端口的包 关于套餐close event here https github com EmergingTechnologyAdvisors node serialport module
  • ptr->你好(); /* 与 */ (*ptr).hello();

    我正在学习 C 指针和 gt 操作员对我来说似乎很奇怪 代替ptr gt hello 一个人可以写 ptr hello 因为它似乎也有效 所以我认为前者只是一种更方便的方法 是这样还是有什么区别 gt 运算符是只是语法糖因为 ptr hel
  • jOOQ fetch 与 fetchResultSet 以及 Kotlin 中的关闭连接

    我使用 Kotlin 与 HikariCP 和 jOOQ 来查询我的数据库 我开始意识到这段代码按预期工作 获取行并随后关闭连接 class CountriesService private val datasource DataSourc
  • 正则表达式-如何在字符第一次出现时停止

    我正在尝试从标签中提取 src 值 到目前为止 我似乎能够提取 src 值和字符串中最后一个引号之间的字符串 String img border 0 src http i bookfinder com about booksellers l
  • matplotlib 桑基图中的连接流程

    我正在使用 matplotlibssankey功能 并且在连接两个流时存在问题 基本上 我只想连接流程Qab rekup到流的末尾Qzu rekup 参见屏幕截图 似乎很容易 但我仍然不知道如何管理它 Here s the screensh
  • 在开发系统上禁用 OutputCache

    我在 ASP net MVC 应用程序中使用 OutputCache 由于使用活动的 OutputCache 进行开发并不是很愉快 因此我想禁用开发系统 本地计算机和开发服务器 上的 OutputCache 做这个的最好方式是什么 这是一本
  • 将 df 转换为单独的观察结果[重复]

    这个问题在这里已经有答案了 我想将 df 从 计数 方法 案例数量 转变为 单独观察 方法 Example df lt dplyr tibble city c a a b b c c sex c 1 0 1 0 1 0 age c 1 2
  • 简化具有重复结果的嵌套 if/else?

    我正在尝试简化以下内容 function handleDirection src if src left if inverse tracker else tracker else if inverse tracker else tracke
  • 选择器的“完成”按钮的 Event_Handler

    我有一个包含项目列表的 xamarin 选择器 我想在 iPhone 上按下 完成 按钮和 Android 上按下 确定 按钮时删除选择器 我有删除选择器的代码 但我不知道 event Handler 可能是什么 Code Picker p
  • 安装蓝图时,环境上下文中不允许初始化程序错误

    我正在尝试使用 blueprintjs core我的项目中的库 但是 当我编译代码时 我收到许多这样的错误 node modules blueprintjs core dist common classes d ts 4 30 error
  • C# 中的 XML 多行注释 - 我做错了什么?

    根据本文 http blogs msdn com ansonh archive 2006 09 11 750056 aspx 可以获得多行 XML 注释 而不是使用 use 这是我对多行注释是什么以及我希望发生的情况的解释
  • Visual Studio 2005 清洁解决方案[重复]

    这个问题在这里已经有答案了 如果我有一个包含 10 个项目的解决方案 当我单击 清理解决方案 时 是否只是清理主启动项目解决方案中的 bin debug 或每个项目目录中的 bin debug 它针对当前选定的配置 例如调试 发布等 清理解
  • 在 ng2-select2 中使用 AJAX

    我的 angular2js 项目中有很多下拉菜单 我在用ng2 选择2 https github com NejcZdovc ng2 select2对于这些下拉菜单 在某些下拉列表中 我需要根据用户在 select2 搜索框中输入的字符串来
  • OpenAPI 规范 (YML/YAML):所有 $refs 替换或扩展为其定义(带有模式验证)

    我正在寻找一些解决方案或者一些脚本 可以帮助我通过模式验证替换 ref 或扩展其在 YML 文件中的定义 具体请看下面的例子 示例 使用 ref 输入 pets petId get summary Info for a specific p