HTTP和RPC之间的共享异常

时间:2017-12-11 16:06:54

标签: nestjs

您好,

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

虽然他们不共享相同的路由,但他们会分享一些代码。例如,用于从数据库中查找资源的服务。我们最初遵循the documentation并使用Exceptions过滤器来管理HTTP响应状态代码。这意味着当无法找到资源时,服务会抛出NotFoundException实例。

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

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

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

2 个答案:

答案 0 :(得分:0)

You can bind a global exception filter / or interceptor to the gRPC microservice, that would transform every thrown c.executemany('''ALTER TABLE table_name ADD (?) ''',k) OperationalError: near "(": syntax error . At the moment there's no generic exception class for each transport type.

答案 1 :(得分:0)

回复我自己的问题:基于reported issue,在混合应用程序的上下文中不支持此功能。

我的项目要求已经改变,但我不太可能进一步调查。