当前位置: 首页 > 知识库问答 >
问题:

根据Swagger API模式验证JSON

帅银龙
2023-03-14

我从一些JSON文件中创建了一个API规范,并尝试测试这些文件是否符合API规范。

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

是否已经有一个现有工具可以根据Swagger模式验证JSON?

共有3个答案

苏嘉志
2023-03-14

如果托管了Swagger JSON,则可以使用以下url:http://online.swagger.io/validator/debug?url=your_url

别兴国
2023-03-14

艾特莱森的swagger-Request est-validator是一个Java库,可以进行这样的验证:

一个Java库,用于根据OpenAPI/Swagger规范验证请求/响应。包括对Swagger v2和OpenAPI v3规范的支持,以及对通用模拟和测试库的适配器。

核心库不依赖于任何特定的HTTP库,但它们还提供了与Spring MVC、MockMVC、REST Asared等集成的附加模块。

还有一个swagger模式验证器,可以根据swagger V2定义验证JSON文档(免责声明:我是作者)。不过,这个Java库不如Atlassian的完整。

茹正祥
2023-03-14

阿尔诺在评论中说,这里有两个独立的问题,这是正确的。

你想验证你的规范是有效的OpenAPI(fka.Swagger)规范吗

你可以

  • 将您的规范复制到在线Swagger编辑器,它将抛出错误。快速浏览源代码并没有告诉我它使用了什么来创建这些错误,但它似乎并没有联系服务器来创建这些错误

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

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

Swagger依赖另一个称为JSON Schema的标准作为其模式对象,这些对象实际上描述了JSON(而不是endpoint或元数据)。Swagger使用JSON Schema的一个子集(缺少:oneOf模式属性等)。为此,您可以使用JSON模式验证器。这里列出了37个;我将为这个也支持YAML模式的在线验证器大喊大叫。

但是,当我说Swagger依赖于JSON API的子集时,我撒谎了。在不属于JSON模式的Swagger中,有一些固定字段具有特殊意义。其中之一是用于多态性的鉴别器。我不知道有一个招摇验证器可以处理鉴别器。有很多用于swagger的工具,有些声称可以进行验证,但许多都是弃用软件,用于旧版本,功能不完整,与其他技术挂钩,等等。如果有一个成熟且维护良好的图书馆,我很想知道。

 类似资料:
  • 问题内容: 我从一些JSON文件创建了API规范,并且尝试测试这些文件是否根据API规范进行了验证。 有一些不错的工具可以根据JSON Schema进行验证,但是我没有找到针对Swagger中创建的规范进行验证的工具(用于创建API架构的工具)。我发现的唯一解决方案是在Swagger- Editor中生成客户端/服务器,这非常麻烦。 是否已经有现有工具可以针对Swagger Schema验证JSO

  • 问题内容: 有没有一种方法可以针对该结构的JSON模式验证JSON结构?我已经查看并发现JSON.Net验证了,但这并不能满足我的要求。 JSON.net可以: 这证明是正确的。 这也证明是真的 仅此验证为假。 理想情况下,我希望它可以验证那里也没有应该存在的字段。 问题答案: 我认为您只需要添加 到您的架构。这将停止提供未知属性。 因此,现在您的结果将是:-正确,错误,错误 测试代码… 输出:-

  • 这是要根据模式验证的JSON。 问题是,如果我们传递了错误的数据,它将正确地验证eid和ename的类型(即整数或字符串)。对于例如: 如果我们为限定传递了错误的类型,那么它将验证为true(即,它不验证限定的类型,可能是因为它是嵌套的)。

  • 据我所知,有一些方法可以根据RDF模式验证序列化的RDF(例如RDF/XML)(如何用您的RDF模式验证RDF)。还有,从RDF/XML到JSON-LD序列化格式的各种转换器(反之亦然)。在Internet上搜索,我找不到一种直接的方法来验证JSON-LD与某种JSON模式的关系,就像RDF模式与RDF(/XML)的关系一样。当然,有各种各样的JSON-LD文档表单,所以我假设一个模式不能很容易地

  • 问题: 有没有一种普通的或本机的javascript方法来根据JSON模式验证JSON脚本? 我在Github上找到了很多库,但没有原生/普通的解决方案。EcmaScript没有对此的规范吗?没有浏览器(或nodejs)有办法原生验证JSON吗? 问题的背景: 我有一个非常复杂的模式,我开发了一个。它应该与一个脚本一起工作,该脚本要求传入其中的 JSON 数据符合架构。

  • 我想使用Jackson库(https://github.com/fasterxml/Jackson)处理Java中的JSON文件,这些文件由一个JSON模式文件描述。 现在,我想验证一个解析的JSON是否符合一个JSON模式文件,该文件是自己解析的。 Jackson有一个JSON模式模块(https://github.com/fasterxml/jackson-module-jsonschema)