我正在开发具有多个微服务的平台,我需要过滤错误:可以向最终用户返回哪种错误,哪些错误。
例如,数据库错误是内部的,它们不会返回给用户。相反,我们使用状态代码发送内部服务器错误。但验证错误可以发送回用户。
我知道如何手动完成。但我正在寻找最佳实践来以正确的方式设计它。
P.S。我正在使用Go语言和GRPC框架。
答案 0 :(得分:0)
当使用golang在gRPC中返回错误时,它使用status library。当您的gRPC服务器返回错误时,您会收到状态代码和消息。您可以使用FromError
函数在客户端获取状态代码和消息。当我在服务器端遇到db错误时,我返回一个消息INTERNAL_SERVER_ERROR,代码为Internal Code = 13
。我的客户端检查代码并确定要返回给用户的消息。