根据Swagger API模式验证JSON

Pet*_* G. 42 json jsonschema swagger swagger-ui swagger-editor

我从一些JSON文件创建了一个API规范,我试图测试文件是否根据API规范进行验证.

有一些很好的工具可以验证JSON Schema,但我没有机会找到一个工具来验证Swagger中创建的规范(用于创建API模式的工具).我找到的唯一解决方案是在Swagger-Editor中生成客户端/服务器,这非常麻烦.

是否已有一个现有工具来验证针对Swagger Schema的JSON?

mgo*_*old 28

评论中的Arnaud是正确的,这里有两个不同的问题.

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

您可以

  • 将您的规范复制到在线Swagger编辑器,它将抛出错误.快速浏览源代码并不能告诉我它用于创建这些错误的内容,但似乎并没有联系服务器来执行此操作...
  • 使用官方的swagger-parser for Java.
  • 使用JavaScript 的非官方swagger-parser(浏览器或节点).

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

换句话说,这是来自请求或响应主体的一些JSON,它是否正确?

Swagger依赖于另一个名为JSON Schema的标准来处理它的模式对象,它实际上描述了JSON(而不是端点或元数据).Swagger使用JSON Schema的子集(缺少:oneOf,patternProperties等等).为此,您可以使用JSON Schema验证器.这里列出37个 ; 我将对这个也支持YAML模式的在线验证器大加赞赏.

但是,当我说Swagger依赖于JSON API的一个子集时,我撒了谎.有一些固定字段在Swagger中具有特殊含义,它们不属于JSON Schema.其中之一discriminator是用于多态性.我不知道可以处理的Swagger验证器discriminator.有许多 swagger 工具和一些声称要进行验证的工具,但许多是放弃软件,用于旧版本,不是功能完整,与其他技术绑定,等等.如果有一个我缺少的成熟且维护良好的图书馆,我很想知道.

  • 嘿克里斯,你能指出招摇使用z-schema的地方吗? (2认同)