Không có lý do gì mà bạn không thể làm được; hoặc cả hai.
Trong một điểm của bối cảnh bán hàng, theo dõi các giao dịch cá nhân có rất nhiều ý nghĩa. Ở đó, giải pháp của Robert rất có ý nghĩa.
Trong bối cảnh kho / kho, bạn không nhất thiết phải theo dõi các giao dịch nhiều như "lấy hàng tồn kho"; có một điểm cuối cho phép khách hàng báo cáo mức cổ phiếu của họ
Tôi có 10 đơn vị Tôi có 7 đơn vị Tôi có 3 đơn vị Tôi có 20 đơn vị
Hãy làm cho nó thêm ý nghĩa hơn.
Mức cổ phiếu thay đổi vì những lý do khác ngoài "doanh số"; Chỉ là một thứ để ghi nhớ trong đầu.
Về lý thuyết, mức độ chứng khoán nên được tính toán từ những thay đổi; nhưng trong một số lĩnh vực chính xác là giả định mà bạn muốn xác minh . Bạn sẽ muốn có thể tính toán mức chứng khoán theo hai cách khác nhau và kiểm tra sự khác biệt (hay còn gọi là "co rút").
Vì vậy, tôi không nghĩ rằng ngữ nghĩa là rõ ràng, dựa trên bối cảnh bạn đã cung cấp.
Về phần HTTP; PUT [target-uri]
có ý nghĩa về mặt ngữ nghĩa khi bạn thay thế một đại diện của một tài liệu bằng một tài liệu khác. Đó là UPSERT
- PUT thứ hai cho tài nguyên đang yêu cầu ghi đè lên biểu diễn hiện có.
PUT /sales { Quantity = 5 }
PUT /sales { Quantity = 2 }
PUT /sales { Quantity = 3 }
nói rằng số lượng đơn vị bán là 3
không 10
.
PUT /sales/1 { Quantity = 5 }
PUT /sales/2 { Quantity = 2 }
PUT /sales/3 { Quantity = 3 }
Đó là những gì 10
trông giống như
PUT /sales { Quantity : [5] }
PUT /sales { Quantity : [5,2] }
PUT /sales { Quantity : [5,2,3] }
Đó là một cách đánh vần khác 10
.
POST /sales { Quantity = 5 }
POST /sales { Quantity = 2 }
POST /sales { Quantity = 3 }
Theo như HTTP có liên quan, điều này cũng được chấp nhận. Tuy nhiên, đó không phải là một lựa chọn tuyệt vời trên một mạng không đáng tin cậy vì các thông điệp đôi khi bị trùng lặp.
POST /sales { Quantity = 5 }
POST /sales { Quantity = 2 }
POST /sales { Quantity = 3 }
POST /sales { Quantity = 3 }
Có phải vậy 13
không? hay 10
?
PUT /sales/1 { Quantity = 5 }
PUT /sales/2 { Quantity = 2 }
PUT /sales/3 { Quantity = 3 }
PUT /sales/3 { Quantity = 3 }
Điều đó rõ ràng 10
PUT /sales { Quantity : [5,2,3] }
PUT /sales { Quantity : [5,2,3] }
Điều đó rõ ràng 10
PUT /sales/1 { Quantity = 5 }
PUT /sales/2 { Quantity = 2 }
PUT /sales/3 { Quantity = 3 }
PUT /sales/4 { Quantity = 3 }
Đó là rõ ràng 13
PUT /sales { Quantity : [5,2,3] }
PUT /sales { Quantity : [5,2,3,3] }
Đó là rõ ràng 13
POST /sales { TransactionId = 1 , Quantity = 5 }
POST /sales { TransactionId = 2 , Quantity = 2 }
POST /sales { TransactionId = 3 , Quantity = 3 }
POST /sales { TransactionId = 3 , Quantity = 3 }
10
POST /sales { TransactionId = 1 , Quantity = 5 }
POST /sales { TransactionId = 2 , Quantity = 2 }
POST /sales { TransactionId = 3 , Quantity = 3 }
POST /sales { TransactionId = 4 , Quantity = 3 }
13
(Công bằng mà nói, HTTP có hỗ trợ cho các yêu cầu có điều kiện ; bạn có thể nâng một số siêu dữ liệu từ giao thức cụ thể miền của mình vào các tiêu đề bất khả tri của miền để loại bỏ một số sự mơ hồ - nếu bạn có thể thuyết phục khách hàng chơi cùng).
Tất nhiên, có sự đánh đổi - HTML không có hỗ trợ PUT riêng; nếu bạn dự định các ứng dụng khách API của mình sẽ trở thành trình duyệt, thì bạn cần một giao thức dựa trên POST hoặc bạn cần các tiện ích mở rộng mã theo yêu cầu để chuyển đổi biểu mẫu gửi từ POST sang PUT.