根据给定的 OpenApi/Swagger 规范验证请求负载和响应

2024-01-12

我们有一个 HTTP API,它是用Python 的拥抱框架 http://www.hug.rest/但这并不是一成不变的,将来可能会被其他东西取代。

在它旁边,我们手动写了一个OpenApi/Swagger 2.0 规范文件 https://github.com/OAI/OpenAPI-Specification在该 API 的 YAML 中,以便提供交互式文档。然而,两者并没有通过任何工具 https://swagger.io/open-source-integrations/来自 Swagger 生态系统 - 当我们对 API 进行更改时,我们会对规范进行相同的更改,反之亦然(这并不理想,但我们稍后可能会对此进行改进)。

现在,为了进行集成测试,我们想要获取一些静态请求及其有效负载(JSON 和多部分/表单数据)以及 es 响应 (JSON),并验证它们是否适合我们规范文件中的模型。

实现这一目标的简单方法是什么?只要复杂性保持在合理范围内,我对任何技术或编程语言都持开放态度。


对于 Open Api 3 文档,我和我的同事有相同的要求,最终编写了我们自己的命令行工具来实现这一目标,我在这里将其开源:https://github.com/hevans90/oa3-api-defender https://github.com/hevans90/oa3-api-defender

它将动态调用中指定的任何端点paths规范的数组,目前支持 GET、DELETE、POST、PATCH、PUT 请求。它将根据规范中提供的示例值动态创建请求。

查询和路径示例参数值将包含在生成的请求中。请求主体(例如在 POST 中)是根据规范中 requestBody 对象中的示例值动态生成的。

要在您的规范中提供有效的示例,看这篇文章 https://swagger.io/docs/specification/adding-examples/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据给定的 OpenApi/Swagger 规范验证请求负载和响应 的相关文章

  • 如何使用jq将JSON对象流转换为数组

    我想用jq将 json 对象流放入 json 数组中 例如 来自 a 1 b 2 to a 1 b 2 但这是行不通的 echo a 1 b 2 jq 自从我得到 a 1 b 2 用吸吮它 s option jq s lt lt lt a
  • 如何外部化 json-ld 并包含在 html 文档中

    是否可以外部化 json ld 并将其包含在 html 文档中 如下所示 网上好像没有这方面的文档 你不能那样做 你应该得到json与AJAX要求 你可以轻松做到jQuery JS function getJSON data123 json
  • Anchor Cycler / 下拉菜单定期导入学校班级数据

    SO 我最近一直在研究一些 html javascript css 为我的学生创建一个在线表格来查看详细信息 分数和各种信息 但我遇到了困难 不确定如何做我正在尝试的事情去做 我将所有这些内容发布在一个线程中的原因是因为我认为其中几个可能会
  • 根据属性中的值类型反序列化对象

    TL DR json net 中是否有一种简单的方法来检查属性的类型并基于该类型创建实例 我在 JSON 中有以下两个对象 它们是JSON API http jsonapi org data type Test id 1 and data
  • REST API 由于 CSRF 检查,同时发布两个具有不同属性的请求失败,状态代码为 403

    我使用 REST API 发送两个发布请求 http localhost 8111 app rest buildQueue但我的第二个请求失败了 403 Forbidden 由于 CSRF 检查失败而响应 403 状态代码 不存在 Orig
  • 使用 ruamel.yaml,如何使带有 NEWLINE 的变量成为不带引号的多行

    我正在生成用作协议的 YAML 其中包含一些生成的 JSON import json from ruamel import yaml jsonsample id 123 type customer account other myyamel
  • jQuery 解析 JSON

    当我尝试解析 JSON 验证的字符串时收到此错误 JSON parse 意外字符 当我删除需要转义的字符 style width 400px 时 它完美地工作 我缺少什么 在使用 parseJSON 之前是否有一种独特的方法来转义字符 va
  • bash 脚本抱怨文件名太长

    所以我有一个脚本可以执行此操作 jq 是命令行 JSON 处理器 echo Getting LB Node IDs echo LB STATUS jq loadBalancer nodes id 最后一行的输出是 1 2 3 但是当我尝试将
  • NSData 不接受有效的 base64 编码字符串

    我正在 iOS 7 客户端实现 JSON Web Token 身份验证 效果很好 我的应用程序接收令牌 并可以使用它们对我的服务器进行经过身份验证的调用 现在 我希望我的客户端代码检查令牌的过期日期 以便它知道何时重新进行身份验证 检查 J
  • JSON 从子对象获取父对象

    我怎样才能得到discount值如果品牌id 983 示例 JSON prods info rate 100 grocery brand A brand id 983 brand B
  • VSTS部署IIS应用程序winrm并更改appsettings.json

    我正在使用 部署 IIS 应用程序 winrm 任务在另一台计算机上部署 IIS 应用程序 此任务部署 zip 文件 在此 zip 中有一个 appsettings json 其变量以下划线开头和结尾 我需要替换每个环境的 appsetti
  • 如何通过填充 NSDictionary 以 JSON 格式发送 UIImage

    我正在尝试使用 JSON 将数据发送到服务器 我可以使用我的对象和关键参数创建 NSDictionary 但我想发送我的图片 图片是UIImage NSDictionary mainJSON NSDictionary dictionaryW
  • 强制 IDataErrorInfo 验证

    我在某个面板上有两个控件 文本框和组合框
  • jQuery 验证日期范围问题

    我的代码中有很多地方有成对的相关开始和结束日期字段 范围 我需要验证开始日期早于结束日期 我正在使用 jQuery 验证插件 这是我的代码 http jsfiddle net jinglesthula dESz2 http jsfiddle
  • 如何处理两个 gradle 插件的任务冲突?

    我使用 gradle 和两个插件com jfrog artifactory and io swagger core v3 swagger gradle plugin 现在我想按照此处所述进行配置https github com swagge
  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • R:将 JSON 时间格式转换为 POSIX

    我有一个 JSON 字符串 并将其放入数据框中 我能够做到这一点 但我在使用 apply 函数之一将所有时间字符串转换为 POSIX 格式时遇到问题 See here https stackoverflow com questions 90
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q

随机推荐