Trong dự án của chúng tôi, một danh sách của tất cả các cuốn sách có thể được lấy thông qua REST:REST - HTTP DELETE - ngữ nghĩa - chỉ xóa hậu duệ
GET http://server/api/books/
Một cuốn sách cụ thể có thể được lấy như sau:
GET http://server/api/books/:id/
Xóa một cuốn sách cụ thể rất dễ dàng:
DELETE http://server/api/books/:id/
Bây giờ, câu hỏi của tôi: những gì nên là kết quả của sự foll owing gọi:
DELETE http://server/api/books/
Rõ ràng là tất cả các sách đều bị xóa. Nhưng tài nguyên sách/ cũng có bị xóa không? Tức là, sau khi yêu cầu:
- nên GET/books/return 200 OK với danh sách trống? hoặc
- nên GET/books/return 404 không tìm thấy?
Theo thông số kỹ thuật, thông báo rằng URI cụ thể sẽ biến mất sau đó, tôi sẽ chọn tùy chọn thứ hai. Tuy nhiên, điều này làm cho mọi thứ phức tạp và không rõ ràng, theo ý kiến của tôi. Có ý nghĩa hơn khi có danh sách trống sách, thay vì không có sách.
Bạn nghĩ sao?
Theo logic của bạn, một câu hỏi: hãy tưởng tượng chỉ có một cuốn sách còn lại, với id 50. Bây giờ, DELETE/books/50/được gọi. GET/books/return nên làm gì? 200 OK hoặc 404? –
200 OK với danh sách trống – fumanchu
Tôi đồng ý. Tuy nhiên, và đây là điểm của tôi, điều này có nghĩa là/books/có thể trả về 404 (nếu DELETE/books/được gọi) hoặc 200 (nếu DELETE/books/id-of-last-book/được gọi). Điều này có nghĩa là trong backend của chúng ta, chúng ta phải nhớ điều này. Điều này làm cho nó phức tạp không cần thiết. Bạn không đồng ý –