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

标签 json validation swagger openapi

我们有一个用 hug framework for Python 编写的 HTTP API。但这不是一成不变的,将来可以用其他东西代替。

在它旁边,我们手动写了一个 OpenApi/Swagger 2.0 specification file在该 API 的 YAML 中,以提供交互式文档。但是,两者并没有通过 any of the tooling 相互连接。来自 Swagger 生态系统 - 当我们对 API 进行更改时,我们也会对规范进行相同的更改,反之亦然(这并不理想,但我们稍后可能会对此进行改进)。

现在,为了进行集成测试,我们希望采用一些静态请求及其有效负载(JSON 和 multipart/form-data)以及 es 响应 (JSON),并验证它们是否符合我们规范文件中的模型。

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

最佳答案

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

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

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

要在您的规范中提供有效的示例,see this article

关于json - 根据给定的 OpenApi/Swagger 规范验证请求有效负载和响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48338422/

相关文章:

php - Laravel 仅在设置密码后更新密码

asp.net - Swagger w/ASP.NET v5 Azure Api 应用程序

java - 规范中未定义任何操作!在swagger ui中指定多个路径时

c# - Swagger UI 不会使用 [FromBody] 参数列出我的 Post 方法

php - 使用PHP将mysql数据解析为json

jquery - 仅使用客户端模板和 Rest 调用的单个 HTML 站点

javascript - 如何使用 javascript 验证表单输入文本

javascript - Angular 1.5.7 中动态添加和删除表单字段的 Angular 表单验证

ios - NSJSONSerialization 不适用于表情符号

django - 在 Django 中处理 JSON 的最佳方式