Để tránh ghi đè mất dữ liệu, mỗi bản ghi có version (bắt đầu 1). Client gửi PUT <id> <ver> <name> kèm version đang giữ. Nếu ver khớp version hiện tại → cập nhật, tăng version, trả 200. Nếu không khớp → 412 Precondition Failed (ai đó đã sửa trước). Không tồn tại → 404.
Input:
CREATE a
PUT 1 1 b
PUT 1 1 c
Output:
{"status":200,"item":{"id":1,"name":"b","version":2}}
{"status":412,"error":"Precondition Failed"}
Mỗi dòng CREATE <name> hoặc PUT <id> <ver> <name>.
Số lệnh ≤ 300.
PUT khớp version in {"status":200,"item":{"id":..,"name":..,"version":..}}; sai version in {"status":412,"error":"Precondition Failed"}; không có id in 404.
Ví dụ:
Đầu vào:
CREATE a
PUT 1 1 b
PUT 1 1 c
Đầu ra:
{"status":200,"item":{"id":1,"name":"b","version":2}}
{"status":412,"error":"Precondition Failed"}Giải thích:
Đang tải editor...