根据Java中的Swagger定义验证JSON消息
我使用Swagger定义创建了一个restapi,现在我需要使用Swagger模式验证传入消息。我发现了几种解决方案,但是它们都依赖于特定的用例。最接近我需要的是它的描述,它与提供的json模式配合得很好,但是当我提供更复杂的招摇过市定义时,它只是将所有内容标记为有效。我的问题是。是否有更好的、更完整的或有能力的解决方案(可能是库)可以根据Swagger定义对给定的JSON消息进行本机验证?我之所以需要这个,是因为我正在实施WSO2 API REST解决方案,这将非常有帮助。看看我的答案,这里有一个解决方案: 它基于使用库:。它允许根据swagger模式中包含的定义检查json根据Java中的Swagger定义验证JSON消息,java,json,rest,validation,swagger,Java,Json,Rest,Validation,Swagger,我使用Swagger定义创建了一个restapi,现在我需要使用Swagger模式验证传入消息。我发现了几种解决方案,但是它们都依赖于特定的用例。最接近我需要的是它的描述,它与提供的json模式配合得很好,但是当我提供更复杂的招摇过市定义时,它只是将所有内容标记为有效。我的问题是。是否有更好的、更完整的或有能力的解决方案(可能是库)可以根据Swagger定义对给定的JSON消息进行本机验证?我之所以需要这个,是因为我正在实施WSO2 API REST解决方案,这将非常有帮助。看看我的答案,这里有
try (InputStream inputStream = schemaLocation.getInputStream()) {
SwaggerValidator validator = SwaggerValidator.forJsonSchema(new InputStreamReader(inputStream));
ProcessingReport report = validator.validate(message, "/definitions/Pet");
return report.isSuccess();
} catch (IOException e) {
logger.error("IOException", e);
return false;
} catch (ProcessingException e) {
e.printStackTrace();
return false;
}
对于不同的框架,有几个适配器,例如:
它能够根据Swagger/OpenAPI 2或OpenAPI 3方案验证请求和/或响应
它不仅仅验证定义的JSON主体。它还验证请求的其余部分,如路径(变量)、头等
验证器能够使用i18n
到目前为止,Java中最完整的针对Swagger和OpenAPI的验证