Trong REST - revertable DELETE phần giới thiệu tốt về các thay đổi trạng thái mô hình howto trong REST đã được đưa ra. Về cơ bản, nếu bạn có tài nguyên có trạng thái trường, bạn chỉ cần đặt phiên bản mới của tài nguyên đó với trường cập nhật trạng thái.REST - chuyển tiếp trạng thái mô hình
Trong chủ đề này, tôi muốn mở rộng mô hình này. Giả sử bạn có một tài nguyên có thể ở hai trạng thái: 1 và 2. Ngược lại với mô hình đơn giản như được mô tả trong bài trích dẫn, có ba chuyển đổi để chuyển từ trạng thái 1 sang trạng thái 2, thay vì chỉ một.
Câu hỏi của tôi là: bạn sẽ mô hình chuyển tiếp trạng thái trong REST như thế nào?
Bản thân tôi không thể đưa ra một POST RPC-như, đó không phải là rất RESTian lẽ:
POST http://server/api/x
target_state=2&transition=3
này thay đổi tài nguyên x từ trạng thái 1 đến trạng thái 2 bằng cách sử dụng chuyển tiếp 3.
Đầu tiên, cảm ơn rất nhiều câu trả lời chi tiết của bạn. Rất tuyệt. Nhưng tôi vẫn không thực sự tin rằng mỗi quá trình chuyển đổi có thể dễ dàng được mô hình hóa như một trạng thái. Tôi nghĩ rằng có một sự khác biệt rất lớn giữa các trạng thái trung gian và trạng thái vĩnh viễn. Bạn đã bao gồm nhóm thứ hai. Về nhóm đầu tiên, một ví dụ: giả sử bạn có thể đi từ người vô gia cư đến người giả lập theo 3 cách: bạn trả tiền cho nó, bạn kế thừa hoặc bạn thắng nó trong một lô đất. Bạn cũng sẽ mô hình này như là các trạng thái riêng biệt? Điều này không dẫn đến sự bùng nổ của các quốc gia 'chỉ vì mục đích đại diện cho các quá trình chuyển đổi khác nhau như các quốc gia'? Làm thế nào để bạn thấy điều đó? –
[Bởi "sở hữu" tôi có nghĩa là "bị đánh cắp". Nếu bạn trả tiền cho nó hoặc giành chiến thắng trong xổ số, bạn đang ở trạng thái "chủ sở hữu".] Nếu ứng dụng của bạn quan trọng với đường dẫn, thì có, bạn nên sử dụng trạng thái trung gian, tạo trạng thái thiết bị đầu cuối mới hoặc thêm trạng thái bổ sung (như tài nguyên cho thế chấp) để thể hiện sự khác biệt. – fumanchu
Được rồi, có ý nghĩa. Tôi chỉ sợ một vụ nổ của các trạng thái 'ảo', được tạo ra bởi sản phẩm chéo của tất cả các chuyển tiếp có thể xảy ra. –