Java Spring Boot@RestController动态接受不同结构bean对象的@RequestBody并验证请求
在Spring Boot中,我试图创建一个Java Spring Boot@RestController动态接受不同结构bean对象的@RequestBody并验证请求,java,rest,spring-boot,Java,Rest,Spring Boot,在Spring Boot中,我试图创建一个@RestController,它应该接受@RequestBody的不同结构,并使用@Valid注释验证bean 我选中了两个选项,如使请求正文字符串,映射和JSON结构,但在这些选项中,我无法使用javax.validation.Valid注释 我的请求主体架构如下所示 模式1 模式2 基于请求中的类型键消息键持有不同的结构值。在模式1中message键具有String值,在模式2中message键具有对象列表作为值 我正在寻找处理上述场景的最佳方法,
@RestController
,它应该接受@RequestBody
的不同结构,并使用@Valid
注释验证bean
我选中了两个选项,如使请求正文字符串,映射和JSON
结构,但在这些选项中,我无法使用javax.validation.Valid
注释
我的请求主体架构如下所示
模式1
模式2
基于请求中的类型
键
消息
键持有不同的结构值。在模式1中message
键具有String
值,在模式2中message
键具有对象列表作为值
我正在寻找处理上述场景的最佳方法,使用@Valid
注释启用bean验证
任何帮助都将不胜感激。谢谢大家! 您可以在bean级别执行此操作
像
请参阅以下链接
为了从一个bean切换到另一个bean,您可以使用switch case,或者在获取bean类型后在服务层而不是restcontroller(API)层中添加@Valid
public methodName(@Valid ObjectName object){
.....
}
在Bean中,您可以声明
数据类型
@有效的
数据类型消息
然后在名为bean的消息中执行相同的操作。您可以在bean级别执行此操作
像
请参阅以下链接
为了从一个bean切换到另一个bean,您可以使用switch case,或者在获取bean类型后在服务层而不是restcontroller(API)层中添加@Valid
public methodName(@Valid ObjectName object){
.....
}
在Bean中,您可以声明
数据类型
@有效的
数据类型消息
然后在名为bean的消息中执行同样的操作。使用spring提供的默认实现是不可能的。您应该自己创建一个接受两种类型(字符串、对象列表)对象的自定义类,然后编写自己的注释来验证这一点。使用spring提供的默认实现是不可能的。您应该自己创建一个接受这两种类型(字符串、对象列表)对象的自定义类,然后编写自己的注释来验证这一点
@NotNull
@Size(min=2, max=30)
private String name;
public methodName(@Valid ObjectName object){
.....
}