栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在REST Web服务中处理资源验证?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在REST Web服务中处理资源验证?

该解决方案最终归为

JacksonJaxbJsonProvider
实现了JAX-RS
MessageBodyReader
和的Jackson’s的子类
MessageBodyWriter
。惊人的Dropwizard的方法使我受到启发。在此提供程序中,我们需要以某种方式注入Validator实例(我将Spring用于注入,将Hibernate
Validator用于JSR-303实现)。如果您使用Hibernate ORM,请不要忘记禁用实体验证,否则您将两次验证同一实体。不过,这可能是所需要的。

然后,在这个子类中

MessageBodyReader
,我验证对象并抛出一个
InvalidEntityException
来自验证器的错误的自定义。我还创建了一个JAX-
RS
ExceptionMapper<InvalidEntityException>
,该映射将每个映射
InvalidEntityException
到正确的HTTP响应中。在我的情况下,我返回了错误请求和包含错误描述的JSON对象。

请注意,此MessageBodyReader会检查

@Valid
@Validated
注释。这意味着它正确支持组。这很重要,因为我们可能不想在整个应用程序中进行相同的验证。例如,当我们要进行部分更新(PUT)时。或者,例如,id属性在POST请求中必须为null,但在其他所有地方都不为null。

数据完整性验证尚未完全处理。但是我正计划捕获数据库异常并将它们转换为我自己的域异常(例如

DataIntegrityException
),因为它看起来效率更高且与我无关。


更新:

从JAX-RS
2开始,推荐的方法是使用其Bean验证支持。在这里检查:https : //jersey.java.net/documentation/latest/bean-
validation.html



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508391.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号