首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用VndErrors处理弹簧HATEOAS错误

用VndErrors处理弹簧HATEOAS错误
EN

Stack Overflow用户
提问于 2018-09-28 14:43:04
回答 1查看 1.8K关注 0票数 2

我很难找到一种干净的方法来处理由启用了HATEOAS的api产生的错误。

基本上,我们的后端服务是一个spring应用程序,在出现异常时使用@ControllerAdviceVndErrors实例返回给使用者。

VndErrorsspring-hateoas提供,一旦返回,将被序列化并标记为application/vnd.error

在服务使用者方面,我们也使用spring-hateoas,我们通过标准的RestTemplate与后端服务进行通信。

ResponseErrorHandler中的默认RestTemplate会为客户端、服务器或u为人的http状态响应抛出异常,但无论如何它都不会试图反序列化响应体。

代码语言:javascript
复制
public MyBusinessConcept myBusinessConcept() {
    try {
        return restTemplate().exchange("http://foo/bar",  ..., MyBusinessConcept.class).getBody();
    } catch (HttpClientErrorException e) {
        // ???
    }
}

我们如何从失败的http响应中获得VndErrors实例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-01 08:37:15

经过大量的研究,我碰巧在其他春天的模块中找到了一个答案。

基本上,一个解决方案是实现ResponseErrorHandler接口,要么使用继承,要么使用组合(更好)回到DefaultResponseErrorHandler。实现将使用ResponseExtractor<VndErrors>反序列化我们的错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52557711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档