首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将gRPC错误码映射到HTTP错误码

将gRPC错误码映射到HTTP错误码
EN

Stack Overflow用户
提问于 2018-12-23 12:44:02
回答 1查看 8.6K关注 0票数 4

我的web应用程序向可扩展服务代理 (ESP)发出HTTP请求,可扩展服务代理反过来将gRPC服务器委托给gRPC服务器(用Python编写)。忽略了Android和iOS客户端,其架构如下:

电除尘器是一个nginx反向代理

gRPC服务器(参考体系结构中的“您的代码”)可能会引发异常,在这种情况下,我使用context.abort引发异常并以非OK状态终止RPC:

代码语言:javascript
复制
try:
  # Do something that could fail.
except ValueError as e:
  context.abort(grpc.StatusCode.DATA_LOSS, str(e))

虽然可以使用代码详细信息,但它们仍然导致HTTP状态为200 OK。

有两个问题:

  1. gRPC状态码由ESP容器(nginx代理)转换为一般的500 Internal Server Error
  2. 附带的细节被剥离。
  3. 组合意味着web客户端最多有一个500 Internal Server Error,用于gRPC服务器引发的所有异常。

最终,我不明白如何将更多的信息(理想情况下,自定义)错误返回给web客户端。

EN

回答 1

Stack Overflow用户

发布于 2019-01-08 00:44:48

grpc状态code::DATA_LOSS,被翻译为HTTP 500。代码是这里

grpc状态详细信息(状态代码和错误消息)以JSON格式在响应体中发送。代码是这里

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53903708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档