Trong một liên kết API HATEOAS được trả về đại diện cho các chuyển trạng thái có thể. Một khách hàng tuân thủ chỉ nên truy xuất và theo các liên kết đó, nhưng nếu một khách hàng không tuân thủ đang xây dựng các URI thay vì theo các liên kết được cung cấp thì mã trạng thái / phản hồi thích hợp nhất sẽ trả về là gì?
- 400 sẽ hoạt động, cùng với một số thông tin trong cơ quan phản hồi - đây là những gì chúng tôi hiện đang làm
- 403 Tôi đoán là sẽ sai, vì nó ngụ ý rằng yêu cầu không bao giờ có thể hoạt động - nhưng có khả năng liên kết có thể có sẵn trong tương lai
- 404 nghe có vẻ hợp lý - tại thời điểm này tài nguyên không tồn tại
Mọi người nghĩ gì? Tôi biết rằng các yêu cầu có điều kiện có thể xử lý các yêu cầu dựa trên các phản hồi cũ (kết quả là ví dụ 412), nhưng đây là một tình huống hơi khác.
Cập nhật:
OK, tôi thấy rằng phản hồi chính xác cho các loại hoạt động không hợp lệ này sẽ là 404. Làm thế nào về cú pháp của yêu cầu là chính xác, nó sẽ chuyển đến một tài nguyên hợp lệ nhưng bằng cách nào đó nó vi phạm quy tắc kinh doanh. Dưới đây là một vài ví dụ giả định:
- Giả sử khách hàng có thể cung cấp hai số phải nằm trong phạm vi 20% của nhau, nhưng nếu không thì có thể là bất kỳ số nào.
- Giả sử khách hàng có thể cung cấp một số thông qua một số tính toán kết quả cho thấy số ban đầu được cung cấp là không chính xác.
Là 400 là phản ứng chính xác cho những điều này?