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

Java中的Swagger规范验证

南门宇
2023-03-14

iam试图验证一些可能包含swagger规范的字符串。我正在尝试使用swagger解析器。

以下代码不起作用。我只收到消息:“[属性不是object]类型”

swagger规范是从xml文件中读出的。

swaggerXml = nodeList.item(0).getTextContent();
            SwaggerDeserializationResult res = new SwaggerParser().readWithInfo(swaggerXml);
            for (int i = 0; i < res.getMessages().size(); i++){
                log.info(res.getMessages().toString());
            }

这个方法是错误的吗?或者。错误消息的含义是什么?我只想知道字符串是否包含JSON格式的有效Swagger规范。

谢谢你的帮助。

更新:问题已解决

据我所知,如果字符串不是json有效的,就会抛出错误。首先我检查json是否有效,然后执行swagger解析器。

共有1个答案

杜正奇
2023-03-14

只是想提供我不久前想出的解决方案。

SwaggerParser parser = new SwaggerParser();
SwaggerDeserializationResult result = parser.readWithInfo(swaggerXml);
List<String> messageList = result.getMessages();

然后打印列表元素。

 类似资料:
  • 我们希望将我们的swagger规范拆分为两个文件。一个包含endpoint,一个包含类型定义,因为类型定义用于多个项目,我们希望避免在多个源位置修复某些内容。 我们使用maven codegen插件来生成模型和api,它可以很好地进行拆分。 但是,请求验证不会,因为它无法遵循对它所显示的类型定义的外部引用。 我们使用swagger-request-validator-spring MVC进行请求验

  • 我开发了一个带有Swagger注释的REST API。我已经能够展示一个炫耀的ui应用程序的api文档,非常好。 问题:根据我的注释,我试图使用swagger提供的url生成符合该规范的客户端。问题是,它似乎是不兼容的,或者至少,我不知道如何做swagger编辑器读取我的网址,并从那时起,产生客户。但是swagger编辑器向我报告了一些错误... 是否可以将我的带注释的 swagger api 与

  • 我正在为一个新endpoint创建一个招摇规范,该endpoint将接收一个作为二进制数据的文件。你会如何在夸张的规范中表达这一点?我将对象视为数据类型,但这似乎不是我要寻找的。过去有人这样做过吗? 据我所知,这个问题不是重复的,因为它专门涉及二进制或“blob”对象类型。

  • 我试图在spring boot应用程序中使用swagger注释从Java代码中获取swagger规范(yaml)。我对模型进行注释,然后运行springboot应用程序,然后从http://localhost:8080/v2/api-文档。 我的模型如下所示: 我想为此创建正确的swagger yaml斑点。当我访问自动提供yaml的swagger UI时,我期待下面的内容。 注意dateOfBi

  • 我们对不同的项目使用基于Swagger的REST API规范。因此,每个项目都有自己的Swagger UI,其中包含endpoint描述。所有这些UI都部署在不同的服务器上,使用不同的域名,从组织的角度来看一点也不酷。 有什么好的选择可以在一个地方存储多个Swagger规范吗?它可以是使用Swagger规范的REST API描述管理的任何服务。

  • 我正在开发一个应用程序,它提取其他应用程序的Swagger规范并为它们推断一个UI,具有与API交互所需的所有功能。 现在,我在尝试实现OAuth2身份验证时遇到了一个问题。使用OAuth2,您始终需要注册的cientId才能获得访问令牌。问题在于,swagger规范不需要在OAuth2安全定义中提供clientId。 这意味着clientId应该在用户想要访问的任何OAuth2服务器中为我自己的