java - JSON 模式验证 - Java POJO 与单独的 .json 文件

标签 java json swagger rest-assured

我正在开发一个使用 Java POJO 的项目,从中生成 JSON 模式并根据给定的 REST 端点响应进行验证。

这在大多数情况下都工作正常,但有一些缺点,例如,当在给定端点中引入新的键值对时,我无法在 Jenkins 构建的自动化测试中看到响应中添加了某些内容(放心的 matchesJsonSchema 方法不会考虑事先在 POJO 类中未定义的额外项目 - 这意味着如果类中没有定义“x”字段并且在端点响应中检索它,测试仍然会通过)。

JSON 标准中有一个“maxProperties”键,可以根据该键验证架构,但这意味着我需要将 ~40 个 .json 架构文件添加到我的存储库中,并定义当前返回的键值对的数量。

总的来说,我想知道在维护方面什么是更好的方法 - 将模式单独保存在 .json 文件中,还是在 Java POJO 类中以编程方式创建它们以进行验证?我认为理想情况下,最好根据 API 在线提供的 swagger 文档来验证响应,尽管由于我从未有机会触及该主题,所以我想知道潜在的缺点是什么。

最佳答案

在 POJO 类中使用 JSR 303 验证,这使您可以轻松应用 @size(min= “”,max=“”) 并且您还必须在其余 Controller 类中使用 @valid 注释

关于java - JSON 模式验证 - Java POJO 与单独的 .json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57928477/

相关文章:

javascript - 无法使用 angular-ui-ace 嵌入 ACE 编辑器 "ui-ace need ace to work"错误

c# - 无效的 JSON 原语 : object : Passing Object as a Parameter from aspx

api - swagger 究竟是什么?为什么在线编辑器不运行请求?

swagger - OpenAPI 规范 : default value of query param is ignored

java - Android Xml 检查 web 服务是否返回 true 或 false

java - PriorityQueue 的顺序不符合预期

javascript - 如何将变形目标从 Blender 导出到 Three.js?

spring-boot - 使用 Spring Actuator 时无法排除/info 和/health/{*path}

java - 使用 GridBagLayout 将跨列居中

java - 通过 java -cp *.jar package.path.ClassName 指定主类将不起作用