我們有一個微服務體系結構,我們正在就如何向客戶端公開內部錯誤進行一些討論。通過微服務傳播錯誤的良好實踐
下面是一個例子:
讓我們假設我們有3個服務項目,服務A,B和C 當客戶端發送到服務,這是公衆的要求,該服務發送給服務B的請求向服務C發送一個請求(這是內部的,需要認證,但是憑證像環境變量一樣在內部存儲,而不是由客戶端發送)。
由於某種原因,B和C之間的通信收到401(可能是422,403或任何客戶端相關的錯誤),這意味着該請求未被授權。
B和C之間的通信是內部的,用戶不知道這些服務。我應該公開發送401給客戶端的內部結構嗎?鑑於這不是客戶的錯?我應該送500嗎?
如果不是用戶的錯誤,那麼5xx是正確的響應代碼範圍。 –
@OliverCharlesworth我同意你的觀點,我應該在內部記錄這個錯誤,並且不要向用戶公開任何信息嗎?你怎麼看? –
這取決於。但通常認爲不好,以便向用戶公開內部錯誤細節(如堆棧跟蹤)(從UX和安全的角度來看)。最多有一些消息,如「500服務器錯誤 - 唯一的錯誤ID是123456」,它允許您將用戶與錯誤日誌中的ID關聯起來。 –