Giả sử tôi đang tạo giao diện RESTful và tôi muốn tải lên tài nguyên bằng cách sử dụng PUT
đến /resources/{id}
. Nhưng tôi chỉ muốn tải lên thứ nếu nó chưa được tải lên trước đây.RESTful PUT nếu không tồn tại?
Tôi nhận thấy rằng PUT
phải là idempotent, vì vậy nếu tôi PUT
một cái gì đó hai lần vào cùng một URL, nó sẽ thành công cả hai lần, phải không?
Tôi cũng hiểu rằng tôi có thể sử dụng HEAD
trên tài nguyên hiện có và sau đó use an ETag
vào trong số PUT
để đảm bảo rằng tài nguyên chưa được sửa đổi kể từ lần cuối tôi kiểm tra.
Nhưng làm cách nào tôi có thể đảm bảo rằng tôi chỉ tải lên một thứ nếu thứ đó chưa tồn tại? Đó là, làm thế nào tôi có thể chắc chắn rằng tôi không bước vào điều của người khác?