3

你好,

我们有一个可以通过 HTTP 和 gRPC 访问的 NestJS 应用程序(使用自定义 RPC 策略)。

虽然它们不共享相同的路线,但它们确实共享一些代码。例如,从数据库中查找资源的服务。我们最初遵循文档并使用异常过滤器来管理 HTTP 响应状态代码。这意味着当找不到资源时,服务会抛出 NotFoundException 的实例。

然而,现在我们正在尝试与 RPC 异常处理程序集成,我们发现任何不是 RpcException 实例的异常类型都将被 RPC 微服务视为内部服务器错误,包括 HttpExceptions。

查看文档和源代码后,我找不到在这两个微服务之间正确共享异常的方法,但我可能完全错了。

有没有办法在 HTTP 和 RPC 服务之间共享代码,同时仍然通过这两种协议准确报告异常?

4

2 回答 2

0

回答我自己的问题:根据报告的问题,在混合应用程序的上下文中不支持此功能。

但是,我的项目要求发生了变化,因此我不太可能进一步调查。

于 2018-01-15T16:04:41.677 回答
0

您可以将全局异常过滤器/或拦截器绑定到 gRPC 微服务,这将转换每个 throwed HttpException. 目前,每种传输类型都没有通用异常类。

于 2017-12-18T07:56:39.437 回答