问题描述
是否有一种好方法可以使用 JSON @Schema 注释以及 Java Bean 验证(例如休眠)在客户端和服务器端进行验证,而不用相应的注释引入冗余信息?
假设服务器端代码具有由@Schema 注释描述的一些属性(例如玩家数量)。 前端客户端使用这些@Schema 注释来提供一个 GUI,允许用户配置该属性以及验证用户对这些属性的输入,甚至在将信息发送回服务器之前。例如:
@Schema(
title = "number of players",description = "property to be specified by User",type = "integer",minimum = "1",multipleOf = 3,defaultValue = "3"
)
private int players = 3;
这个例子已经有一些不利的冗余,因为它在两个地方定义了一个 defaultValue。一次在(Java)代码本身中,另一次在 JSON 模式中。 暂时把它放在一边(虽然仍然欢迎干净的建议),我想知道在添加 Bean Validations 时如何避免更多不需要的冗余,例如休眠验证器。
如果我想添加 Bean Validations 以在服务器端进行验证,代码可能如下所示:
@Schema(
title = "number of players",defaultValue = "3"
)
@Min(1)
@NotEmpty
private int players = 3;
使用自定义验证注释进行更复杂的验证是可能的,但对于我缺乏掌握的基本问题,这应该足以理解我的困难。
避免重复声明验证约束(例如最小多次(JSON @Schema 注释和来自 Hibernate 的 @Min 注释))的适当方法是什么? 我很欣赏建议和评论。谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)