I created an API spec from some JSON files and I am trying to test if the files validate against the API spec.

有一些很好的工具可以根据JSON模式进行验证,但我没有机会找到一个工具来根据Swagger中创建的规范(用于创建API模式的工具)进行验证.我找到的唯一解决方案是在Swagger编辑器中生成客户机/服务器,这相当麻烦.

Is there already an existing tool to validate JSON against Swagger Schema?

推荐答案

阿诺在 comments 中说,这里有两个独立的问题是正确的.

是否要验证您的规范是否为有效的OpenAPI(fka.Swagger)规范

You can

  • 将你的规格复制到online Swagger editor,它会抛出错误.快速浏览source并不会告诉我它是用什么来创建这些错误的,但它似乎并没有联系服务器来做这件事...
  • Use the official swagger-parser for Java.
  • 对JavaScript(浏览器或 node )使用非官方的swagger-parser.

或者验证此规范的实现是否会生成JSON,这对于您的JSON模式是有效的?

换句话说,这里有一些来自请求或响应体的JSON,对吗?

Swagger relies on another standard called JSON Schema for its schema objects, which are what actually describes the JSON (rather than endpoints or metadata). Swagger uses a subset of JSON Schema (missing: oneOf, patternProperties, among others). To that end, you can use a JSON Schema validator. There are 37 listed here; I'll give a shoutout to this online validator that also supports YAML schemas.

但是,当我说Swagger依赖于JSON API的子集时,我撒谎了.在不属于JSON Schema的Swagger中,有几个固定字段具有特殊含义.其中一个是discriminator,它用于多态性.I am not aware of a Swagger validator that can process 101.有fair number of tools代表大摇大摆,一些人声称要做验证,但许多都是遗弃的软件,意味着旧版本,功能不完整,与其他技术Bundle 在一起,等等.如果我缺少一个成熟且维护良好的图书馆,我很想知道.

Json相关问答推荐

使用JOLT转换来卸载数据

如何将自定义卡保存到dart/flutter中的共享偏好设置?

使用Shell深入挖掘到最低的SON元素

在Go中,当字段可以根据其他字段具有不同的类型时,什么是正确的方法来卸载JSON?

Jolt转换问题—使用键查找匹配对象

PowerShell:将Invoke-WebRequest与变量一起使用

删除JSON文件的特定内容

如何创建生成两个不同对象的JSON数组的SQL查询?

给定一个包含两个数组的JSON输入文件,如何使用Jolt将一个数组中的每个元素与另一个数组组合在一起?

创建Json嵌套文件 struct

嵌套存储在字符串变量中的 JSON 对象

如何在 Flutter 中遍历嵌套的动态 JSON 文件

Serde JSON 反序列化枚举

Powershell中等效的JSONPath通配符以 Select 对象中的所有数组

在 postgresql 中将行转换为 json 对象

将 js Array() 转换为 JSON 对象以用于 JQuery .ajax

ASP.NET MVC - 将 Json 结果与 ViewResult 结合起来

如何在spark 上将json字符串转换为数据帧

确保数组中的项目属性在 Json Schema 中是唯一的?

在 iPhone 上解析 JSON 日期