我正在开发一个使用 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/