您好,
我们有一个可以通过HTTP和gRPC访问的NestJS应用程序(使用自定义RPC策略)。
虽然他们不共享相同的路由,但他们会分享一些代码。例如,用于从数据库中查找资源的服务。我们最初遵循the documentation并使用Exceptions过滤器来管理HTTP响应状态代码。这意味着当无法找到资源时,服务会抛出NotFoundException实例。
然而,现在我们正在尝试与RPC异常处理程序集成,我们发现任何类型的异常不是RpcException实例都会被RPC微服务视为内部服务器错误,包括HttpExceptions
在查看文档和源代码之后,我找不到在这两个微服务之间正确共享异常的方法,但我可能完全错了。
有没有办法在HTTP和RPC服务之间共享代码,同时仍然通过两种协议准确报告异常?
答案 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,在混合应用程序的上下文中不支持此功能。
我的项目要求已经改变,但我不太可能进一步调查。