Cách tiếp cận [REST] [1] sử dụng POST, GET, PUT và DELETE để triển khai các quy tắc CRUD cho tài nguyên web. Đó là một cách đơn giản và ngăn nắp để hiển thị các đối tượng cho các yêu cầu trên web. Đó là các dịch vụ web không có chi phí.
Chỉ cần làm rõ sự khác biệt ngữ nghĩa. Mỗi hoạt động khá khác nhau. Vấn đề là có các phương thức HTTP đẹp có ý nghĩa rõ ràng, khác biệt.
POST tạo đối tượng mới. URI không có khóa; nó chấp nhận một thân thông báo định nghĩa đối tượng. Chèn SQL. [Chỉnh sửa Mặc dù không có lý do kỹ thuật nào cho POST không có khóa, nhưng các nhân viên REST đề xuất mạnh mẽ rằng để POST có ý nghĩa riêng biệt như CREATE, nó không có khóa.]
GET truy xuất các đối tượng hiện có. URI có thể có khóa, tùy thuộc vào việc bạn đang thực hiện GET đơn hoặc danh sách GET. SQL Chọn
PUT cập nhật một đối tượng hiện có. URI có khóa; Nó chấp nhận một nội dung thông báo cập nhật một đối tượng. Cập nhật SQL.
DELETE xóa đối tượng hiện có. URI có khóa. Xóa SQL.
Bạn có thể cập nhật bản ghi bằng POST thay vì PUT không? Không phải không giới thiệu một số sự mơ hồ. Động từ nên có những hiệu ứng rõ ràng. Hơn nữa, POST URI không có khóa, trong đó PUT phải có khóa.
Khi tôi POST, tôi mong đợi một TẠO TẠO 201. Nếu tôi không hiểu, có gì đó không ổn. Tương tự, khi tôi PUT, tôi mong đợi một 200 OK. Nếu tôi không hiểu, có gì đó không ổn.
Tôi cho rằng bạn có thể nhấn mạnh vào một số sự mơ hồ trong đó POST thực hiện POST hoặc PUT. URI phải khác; cũng thông điệp liên quan có thể khác nhau. Nói chung, các thành viên REST lấy cue của họ từ SQL, nơi INSERT và UPDATE là các động từ khác nhau.
Bạn có thể đặt trường hợp UPDATE sẽ chèn nếu bản ghi không tồn tại hoặc cập nhật nếu bản ghi không tồn tại. Tuy nhiên, nó đơn giản hơn nếu UPDATE có nghĩa là UPDATE và không cập nhật có nghĩa là có gì đó sai. Một trở lại bí mật để INSERT làm cho các hoạt động mơ hồ.
Nếu bạn không xây dựng giao diện RESTful, thì điển hình là chỉ sử dụng GET và POST để truy xuất và tạo/cập nhật. Thông thường, có sự khác biệt về URI hoặc sự khác biệt về nội dung thư để phân biệt giữa POST và PUT khi một người nhấp vào gửi trên biểu mẫu. Tuy nhiên, nó không phải là rất sạch vì mã của bạn phải xác định xem bạn có đang ở trong trường hợp POST = create case hoặc POST = update hay không.
Bạn đang đề xuất chỉ sử dụng GET và POST? Tôi không thể làm được điều đó. – Till
Cảm ơn bạn đã chỉ ra điều này, tôi đã làm rõ câu hỏi. – Gili
Gili, bên dưới bạn bây giờ cũng muốn ném ra PUT. Tôi nghĩ bạn cần phải viết lại câu hỏi từ đầu. Các trang web dường như nhận được bằng GET và POST vì vậy có lẽ đó là đủ. – pbreitenbach