我正在研究一个使用Java POJO的项目,该项目从中生成JSON模式并针对给定的REST端点响应进行验证。
这在大多数情况下都可以正常工作,但是有一些缺点,例如,当在给定的端点中引入新的键值对时,我无法在Jenkins build的自动测试中看到在响应中添加了某些内容(restassured的matchesJsonSchema方法不会考虑事先未在POJO类中定义的其他项,这意味着如果在类中没有定义“ x”字段,并且在端点响应中对其进行了检索,则测试仍将通过。)
JSON标准中有一个可用的“ maxProperties”密钥,可以根据该密钥对模式进行验证,但这意味着我需要向存储库中添加约40个.json模式文件,并定义当前未返回的密钥-值对。
总的来说,我想知道在维护方面更好的方法是什么?将模式保存在.json文件中,还是在Java POJO类中以编程方式创建它们以进行验证?我认为,理想情况下,最好针对API的在线文档来验证响应,尽管由于我从未有机会接触过该主题,所以我想知道潜在的弊端是什么。
答案 0 :(得分:0)
在POJO类“使用JSR 303验证”中,这使您的应用程序易于使用@size(min =“”,max =“”),并且还必须在rest控制器类中使用@valid注释