Java 动态主体请求的Spring数据Rest验证
我是Spring相关技术的新手。 我选择Spring Data Rest来实现web注释服务器,注释应该用JSON-LD表示,这意味着您不能将请求绑定到任何域对象,因为字段名是可变的。(在C#中,可以将其绑定到动态)。在持久化到db之前,您只需要将其转换为某个已定义的类型 在转换之前,我想验证请求主体。 我使用:Java 动态主体请求的Spring数据Rest验证,java,spring,validation,spring-data-rest,json-ld,Java,Spring,Validation,Spring Data Rest,Json Ld,我是Spring相关技术的新手。 我选择Spring Data Rest来实现web注释服务器,注释应该用JSON-LD表示,这意味着您不能将请求绑定到任何域对象,因为字段名是可变的。(在C#中,可以将其绑定到动态)。在持久化到db之前,您只需要将其转换为某个已定义的类型 在转换之前,我想验证请求主体。 我使用: @服务 公共类AnnotationValidator实现验证器{ @自动连线 专用处理器; @凌驾 公共布尔支持(类aClass){ 返回AnnotationDocument.clas
@服务
公共类AnnotationValidator实现验证器{
@自动连线
专用处理器;
@凌驾
公共布尔支持(类aClass){
返回AnnotationDocument.class.equals(aClass);
}
@凌驾
公共无效验证(对象o、错误){
对象处理注释;
试一试{
processedAnnotation=ldProcessor.extractAnnotationModel(o);
}捕获(JsonLdError JsonLdError){
jsonLdError.printStackTrace();
}
}
}
在validate方法中,对象o不表示请求主体。实际上,它试图将请求主体强制转换为AnnotationDocument,因此我无法验证它
最后,我的问题是:
如何处理纯请求主体并检查其字段?
我通过创建@RepositoryRestController解决了我的问题,但我认为这应该更简单。你能链接到解释这些注释的“标准”吗?我从未听说过它们,也不知道如何对它们进行建模。当然。如果@context不同,所有字段都会改变。这就是问题所在。你能链接到解释这些注释的“标准”吗?我从未听说过它们,也不知道如何对它们进行建模。当然。如果@context不同,所有字段都会改变。这就是问题所在。
@Service
public class AnnotationValidator implements Validator{
@Autowired
private Processor ldProcessor;
@Override
public boolean supports(Class<?> aClass) {
return AnnotationDocument.class.equals(aClass);
}
@Override
public void validate(Object o, Errors errors) {
Object processedAnnotation;
try {
processedAnnotation = ldProcessor.extractAnnotationModel(o);
} catch (JsonLdError jsonLdError) {
jsonLdError.printStackTrace();
}
}
}