根据给定的 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 规范验证请求负载和响应 的相关文章

随机推荐