2012-01-12 30 views
10

Twitter đã bị phản đối việc sử dụng tất cả các phương pháp sử dụng DELETE như một phương thức yêu cầu,Tại sao Twitter không còn sử dụng DELETE làm phương thức yêu cầu trong API của họ?

DELETE :user/lists/:id 

Và bây giờ thay vì sử dụng POST là phương thức yêu cầu,

POST lists/destroy 

Tại sao Twitter đã ngừng sử dụng DELETE trong API của họ hoàn toàn, và bây giờ chỉ sử dụng POST và GET cho tất cả các phương pháp?

  • Hiệu suất có hoạt động không?
  • Có bảo mật không?
  • Ưu điểm của việc xây dựng một API chỉ sử dụng POST và GET là gì?
+2

đoán mơ hồ: đăng/nhận là nền tảng của web và có nhiều khả năng nhận được thông qua tường lửa nhận biết nội dung, trong khi xóa có thể không. –

+0

@MarcB trong khi nó có ý nghĩa, nó đánh bại toàn bộ điểm của thiết kế RESTful API, sử dụng một số phương thức HTTP 'khác' (DELETE, PUT, HEAD, vv) như một phần của giao thức API '. –

+6

@JamesBeith Tôi nhận thấy bạn đã hoàn nguyên chỉnh sửa cho câu hỏi của mình, chỉ để bao gồm chữ ký. Chữ ký không được khuyến khích, cả hai chỉnh sửa đã xóa nó đều hợp lệ, vui lòng đọc [faq] (http://stackoverflow.com/faq#signatures). Bạn có thể thêm xử lý twitter của bạn trên trang hồ sơ của bạn, nếu bạn muốn. – yannis

Trả lời

7

Tôi nghĩ rằng có sự cố tương thích với một số khách hàng có thể phát hành yêu cầu DELETE. Nhìn lại số docs đối với một trong những cuộc gọi không được chấp nhận, tôi thấy sự cố này không rõ ràng.

Cách sử dụng Lưu ý: khách hàng không thể phát hành DELETE yêu cầu có thể POST với tham số thêm _method=DELETE

Vì vậy, cảm giác của tôi (và đoán) là kể từ khi DELETE động từ không thống nhất được hỗ trợ, nó đã bị xóa toàn hệ thống.


Cập nhật: tôi đã gửi một tweet Taylor (@episod) tại Twitter và hỏi ông nghĩ gì về việc trên, và ông đã gửi các câu trả lời sau đây:

@arcain [câu trả lời ] khá nhiều bao gồm nó; không tôn trọng ý định REST bình dị. DELETE vẫn thường hoạt động trên các phương pháp đó, nhưng chúng tôi bỏ qua tài liệu. [link]

@arcain mặc dù hầu hết các phương pháp được đề cập không bị phản đối do phương pháp HTTP quá nhiều do các mẫu URL vụng về. [link]

Vì vậy, khả năng sử dụng - cùng với khả năng tương thích - dường như là mối quan tâm chính với việc không dùng nữa.

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