2012-05-15 33 views

Trả lời

15

Không có sự khác biệt nào cả. REST mô tả cách tương tác với máy chủ HTTP, không phải máy chủ nào sẽ trả về. Hầu hết các ứng dụng web tương tác với phía máy chủ bằng các yêu cầu POST hoặc GET với bất kỳ thông tin bổ sung cần thiết để thực hiện yêu cầu trong một biểu mẫu gửi cho POST hoặc chuỗi truy vấn cho GET. Vì vậy, nếu bạn muốn xóa một cái gì đó từ máy chủ họ thường làm POST với một biểu mẫu có chứa dữ liệu chỉ định một tài nguyên cùng với một hướng dẫn để xóa nó.

Tuy nhiên, HTTP thực hiện các phương thức (còn được gọi là động từ) ngoài GET hoặc POST. Nó cũng thực hiện, trong số những thứ khác, HEAD (trả về cùng một tiêu đề bạn đã thực hiện cho GET, nhưng không có đáp ứng), PUT (Lấy phần thân yêu cầu và lưu trữ nội dung của nó ở bất kỳ URL nào mà yêu cầu PUT được tạo), và XÓA (Xóa bất kỳ tài nguyên nào tồn tại tại URL được chỉ định). Một giao diện REST đơn giản sử dụng các động từ bổ sung này để truyền tải ý nghĩa của yêu cầu tới máy chủ.

Trình duyệt thường chỉ hỗ trợ GET và POST cho các yêu cầu "bình thường" (không phải XHR), nhưng các công cụ như Curl có thể phát hành tập hợp đầy đủ các động từ HTTP. Bạn cũng có thể sử dụng các động từ bổ sung với các kỹ thuật dựa trên XHR như AJAX.

Bạn sẽ vẫn phải cung cấp API không REST truyền thống cho trình duyệt để sử dụng, trừ khi bạn đang tạo javascript và XHR hỗ trợ yêu cầu sử dụng ứng dụng của bạn.

+0

Xin chào, tôi muốn tạo một API sẽ được tiêu thụ bởi các applet di động cũng như các trang web. Cách tốt nhất để làm API (REST hoặc Non REST) ​​là gì? – Shaolin

7

REST chủ yếu chỉ đề cập đến việc sử dụng giao thức HTTP theo cách nó được dự định. Sử dụng phương thức HTTP GET trên URL để truy xuất thông tin, có thể ở các định dạng khác nhau dựa trên tiêu đề HTTP Accept. Sử dụng phương thức HTTP POST để tạo các mục mới trên máy chủ, PUT để chỉnh sửa các mục hiện có, DELETE để xóa chúng. Đặt idempotent API, tức là lặp lại cùng một truy vấn với cùng một thông tin sẽ mang lại kết quả tương tự. Cấu trúc URL của bạn theo cách phân cấp, v.v.

REST chỉ là nguyên tắc hướng dẫn cách sử dụng URL và giao thức HTTP để cấu trúc API. Nó không nói gì về các định dạng trả về, mà cũng có thể là JSON.

Điều đó ngược lại, ví dụ, các API gửi thông điệp nhị phân hoặc XML tới một cổng được chỉ định, không sử dụng sự khác biệt về phương thức HTTP hoặc URL.

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