2012-06-13 35 views
6

chỉ là một câu hỏi ngắn:Backbone.save POST thay vì PUT

Có các trường hợp mới của một mô hình và phát hành một model.save() với URL thiết lập để /api/store/category, Backbone đưa ra một POST. Theo kiến ​​thức của tôi, nó nên sử dụng PUT, như đã đề cập trong bài đăng trên blog "PUT or POST: The REST of the Story" này.

Ai là đúng? BB hoặc tác giả của bài viết này?

Trả lời

13

Theo Backbone documentation, lưu mô hình mới sẽ dẫn đến yêu cầu POST và lưu mô hình hiện có (có id) sẽ phát ra yêu cầu PUT.

tiết kiệmmodel.save ([thuộc tính], [tùy chọn])
...
Nếu mô hình isNew, cứu sẽ là một "tạo ra" (HTTP POST), nếu mô hình đã có tồn tại trên máy chủ, lưu sẽ là "cập nhật" (HTTP PUT).

Và nếu bạn đang tự hỏi nếu Backbone nên sử dụng một POST để tạo, kiểm tra

  1. PUT vs POST in REST
  2. RESTful web services trên Wikipedia

Trong ánh sáng của những bài viết này, tôi 'd nói rằng, trong bối cảnh xương sống, động từ được sử dụng chính xác:

  • tiết kiệm một mô hình mới gây ra một sự thay đổi trong hệ thống, một URL mới được thêm vào, hành động không idempotent, nó phải là một POST,
  • tiết kiệm một mô hình gọi thay thế một nguồn tài nguyên tại một URL nhất định, hành động là idempotent, nó phải là một PUT.
+1

Phải, do đó, để trả lời yêu cầu đăng, bạn nên gửi lại id mới được tạo. – Yaroslav

+0

Cảm ơn, tôi đã biết điều đó. Có lẽ câu hỏi của tôi hơi không chính xác. Tôi đã tự hỏi nếu xương sống là off-standard ;-) – Jan

+0

@Jan tôi đã sửa đổi câu trả lời của mình để trả lời lựa chọn POST/PUT – nikoshr

Các vấn đề liên quan