【发布时间】:2020-02-16 19:53:43
【问题描述】:
我正在设置新的微服务 api 来连接并从 3rd 方 REST api 获取信息。这是一个更像我们服务内部的 api,因此其他 api 可以使用这个。
我有这样的内部微服务设计:
Controller -> (calls) -> Service Layer -> (calls) -> Service Implementation -> (calls) -> rest 3rd party API
错误处理如下,当出现任何问题/异常时,我在异常handler(@ControllerAdvice) 中填写所有ErrorDetailsObj 并将响应实体包装器返回给消费服务。
public class ErrorObject {
private String code;
private String message; //(i choose message from error.prop based on the code)
}
public class ErrorDetailsObj {
private HttpStatus httpStatus;
private LocalDateTime timestamp;
private String message;
private List<ErrorObject> errors;
}
- 我的设计是否正确?或者有没有更好的方法来简化错误处理?
- 我是否只需要发送错误代码,以便消费服务可以选择正确的错误消息并显示?就我而言,这是我自己的内部服务,它连接到第 3 方服务。
- 错误处理的最佳示例有哪些?
【问题讨论】:
-
有效吗? “更好”是什么意思?
-
是的,它可以工作,但我需要知道任何其他比这更好的设计,可能只公开错误代码,以便消费服务可以利用那里的服务中的错误消息。但缺点是所有消费服务都必须暴露错误消息才能放置在服务中......所以需要更好的设计或方法
-
codereview SE 不是问这个问题的更好地方吗?
标签: java api spring-boot microservices