Chúng tôi có kiến trúc dịch vụ vi mô và chúng tôi đang thảo luận một số cách để hiển thị lỗi nội bộ cho khách hàng.Thực hành tốt để truyền bá lỗi thông qua các dịch vụ vi mô
Dưới đây là một ví dụ:
Giả sử chúng ta có 3 dịch vụ, dịch vụ A, B và C. Khi client gửi một yêu cầu đến dịch vụ A, đó là công cộng, dịch vụ này sẽ gửi một yêu cầu để phục vụ B gửi yêu cầu tới dịch vụ C (là xác thực nội bộ và nhu cầu, nhưng thông tin đăng nhập được lưu trữ nội bộ như biến môi trường, chúng không được gửi bởi máy khách).
Và vì lý do nào đó, giao tiếp giữa B và C nhận được 401 (có thể là 422, 403 hoặc bất kỳ lỗi nào liên quan đến khách hàng), có nghĩa là yêu cầu không được ủy quyền.
Các thông tin liên lạc giữa B và C là nội bộ, người dùng không biết về các dịch vụ này. Tôi có nên để lộ cấu trúc bên trong của mình gửi 401 cho khách hàng không? Do đó không phải lỗi của khách hàng? Tôi có nên gửi 500?
Nếu đó không phải lỗi của người dùng, thì 5xx là phạm vi mã phản hồi chính xác. –
@OliverCharlesworth Tôi đồng ý với bạn, Và tôi có nên đăng nhập lỗi này nội bộ và không để lộ bất kỳ thông tin nào cho người dùng không? bạn nghĩ sao? –
Nó phụ thuộc. Nhưng thường được coi là xấu để hiển thị chi tiết lỗi nội bộ (như dấu vết ngăn xếp) cho người dùng (cả từ UX và quan điểm bảo mật). Ít nhất, một số thông báo như "Lỗi máy chủ 500 - ID lỗi duy nhất của bạn là 123456" cho phép bạn tương quan người dùng với ID trong nhật ký lỗi của bạn sau này. –