Một phần của API RESTful của chúng tôi sẽ cho phép người dùng đăng ký một mục với số sê-ri. Vì số sê-ri không phải là số duy nhất trên toàn cầu, nó không thể được sử dụng làm mã định danh của tài nguyên, vì vậy chúng tôi sẽ sử dụng POST cho tài nguyên chính sẽ tạo một số nhận dạng, ví dụ:Trả lời yêu cầu HTTP POST không cần thiết
POST /my/items
<item serial-number="ABCDEF" />
Trong trường hợp mục chưa được đăng ký, ngữ nghĩa HTTP được xác định rõ. Chúng tôi trả lại tiêu đề Vị trí và mục đã đăng ký làm nội dung thực thể, ví dụ:
HTTP 201 Created
Location: /my/items/1234
<item id="1234" serial-number="ABCDEF" />
Tuy nhiên, trong trường hợp mục này đã được đăng ký, API phải là không cần thiết và trả lại mục đã đăng ký trước đó mà không tạo mục mới. Dự đoán tốt nhất của tôi là sau đó nó sẽ trả lại mã trạng thái 200 OK và sử dụng tiêu đề Content-Location để cho biết mục thực sự đến từ đâu, ví dụ:
HTTP 200 OK
Content-Location: /my/items/1234
<item id="1234" serial-number="ABCDEF" />
Điều này có vẻ hợp lý không? Tôi không hoàn toàn rõ ràng liệu Vị trí hoặc Nội dung có phù hợp hơn trong trường hợp thứ hai hay không.
Hmmm có thực sự tôi như thế này. Mặc dù các số sê-ri có thể không phải là duy nhất trên toàn cầu, nhưng xác suất gần như 100% sẽ là duy nhất trong phạm vi của người dùng để nó có thể hoạt động như một số nhận dạng duy nhất. Nó cũng sẽ giải quyết vấn đề của tôi như thế nào một thiết bị có thể kiểm tra xem nó đã được đăng ký bằng cách sử dụng GET trên URL này và kiểm tra xem phản ứng là 200 hay 404. Cảm ơn! –