使用动态主体的请求的Spring Data Rest验证

时间:2016-10-16 18:17:31

标签: java spring validation spring-data-rest json-ld

我是Spring相关技术的新手。 我选择Spring Data Rest来实现Web注释服务器。 According to the standard,注释应由JSON-LD表示,这意味着您无法将请求绑定到任何域对象,因为字段名称是可更改的。 (在C#中,可以将其绑定到动态)。您只需要在持久化到db之前将其转换为某种定义的类型。

在转换之前,我想验证请求正文。 我用:

@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();
        }
    }
}

验证方法中,Object o不代表请求正文。实际上,它试图将请求体转换为 AnnotationDocument ,因此我无法对其进行验证。

最后,我的问题是: 如何处理纯请求主体并检查其字段? 我通过创建 @RepositoryRestController 解决了我的问题,但我认为它应该更简单。

0 个答案:

没有答案