Tôi đang tìm kiếm hướng dẫn về các thực tiễn tốt khi trả về lỗi từ API REST. Tôi đang làm việc trên một API mới vì vậy tôi có thể thực hiện bất kỳ hướng nào ngay bây giờ. Hiện tại loại nội dung của tôi là XML, nhưng tôi dự định hỗ trợ JSON trong tương lai.
Bây giờ tôi đang thêm một số trường hợp lỗi, ví dụ như một khách hàng cố gắng thêm tài nguyên mới nhưng đã vượt quá dung lượng lưu trữ của anh ta. Tôi đã xử lý một số trường hợp lỗi nhất định với mã trạng thái HTTP (401 để xác thực, 403 cho ủy quyền và 404 cho URI yêu cầu xấu đơn giản). Tôi đã xem qua các mã lỗi HTTP may mắn nhưng không có phạm vi 400-417 nào có vẻ đúng để báo cáo các lỗi cụ thể của ứng dụng. Vì vậy, lúc đầu, tôi đã cố gắng trả lại lỗi ứng dụng của mình với 200 OK và một tải trọng XML cụ thể (nghĩa là trả cho chúng tôi nhiều hơn và bạn sẽ nhận được dung lượng lưu trữ mà bạn cần!) Nhưng tôi đã dừng lại để suy nghĩ về nó và nó dường như có hiệu lực (/ nhún vai trong kinh hoàng). Bên cạnh đó, có cảm giác như tôi đang chia các phản hồi lỗi thành các trường hợp riêng biệt, vì một số là mã trạng thái http được điều khiển và một số khác là hướng nội dung.
Vậy các khuyến nghị của ngành là gì? Các thực tiễn tốt (vui lòng giải thích lý do tại sao!) Và cũng như vậy, từ máy khách POV, cách xử lý lỗi nào trong API REST giúp mã máy khách dễ dàng hơn?