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

时间:2018-01-19 10:00:12

标签: json validation swagger openapi

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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