如何在上游微服务之间的内部通信期间向最终用户传播4XX错误?

时间:2018-03-26 03:19:58

标签: microservices

假设我有三个微服务A,B,C。

假设客户端调用

client--> A --> B --> C

客户端呼叫微服务A,然后呼叫B和B然后呼叫C

如果B或C中的任何一个返回5XX,则A将向用户显示502错误。

client --> A --> 5XX
or client --> A --> B--> 5XX

客户端收到详细消息中带有实际错误的502响应。

假设有一个错误的请求错误(例如B或C)或4XX错误,A应该向用户显示什么? 502 Bad Gateway或向用户传播4XX错误?

client --> A --> 4XX
or client --> A --> B--> 4XX

客户应该看到什么?

它应该是一个包含4xx错误的502 Bad Gateway,其中包含响应正文中的错误详细信息吗?

例如:

502 Bad Gateway 
{

  "errors" : {
    "code" : "InternalError",
    "message" : "Internal error occured please try after some time.",
    "details" : "Error in validating file 123-23-234 format while unzipping."  

   }

 }

应该是4XX错误,错误详情在响应正文中吗?

4XX Bad Request

{

  "errors" : {
    "code" : "InvalidFileFormat",
    "message" : "Error in validating file 123-23-234 format while unzipping."
   }

 }

401 Auth错误或超时错误怎么办?

0 个答案:

没有答案