Sự khác biệt giữa hệ thống REST và hệ thống RESTful là gì?
Từ một vài điều tôi đã đọc hầu hết được gọi là dịch vụ REST thực sự là dịch vụ RESTful. Vậy đâu là sự khác biệt giữa cả hai.
Sự khác biệt giữa hệ thống REST và hệ thống RESTful là gì?
Từ một vài điều tôi đã đọc hầu hết được gọi là dịch vụ REST thực sự là dịch vụ RESTful. Vậy đâu là sự khác biệt giữa cả hai.
Câu trả lời:
Chuyển trạng thái đại diện (REST) là một kiểu kiến trúc phần mềm. Như được mô tả trong luận văn của Roy Fielding, REST là một "phong cách kiến trúc" về cơ bản khai thác công nghệ và giao thức hiện có của Web.
RESTful thường được sử dụng để chỉ các dịch vụ web triển khai kiến trúc như vậy.
architect
của cái gì? của url? như https://translation.googleapis.com/language/translate/v2
đây là phong cách REST?
Để phân biệt hoặc so sánh 2 cái này, bạn nên biết REST là gì .
REST ( RE trình bày S tate T ransfer) về cơ bản là một kiểu kiến trúc phát triển có một số nguyên tắc:
Nó nên không quốc tịch
Nó sẽ truy cập tất cả các tài nguyên từ máy chủ chỉ bằng URI
Nó không có mã hóa sẵn có
Nó không có phiên
Nó sử dụng một và chỉ một giao thức - HTTP
Để thực hiện thao tác CRUD, cần sử dụng HTTP động từ như get
, post
, put
vàdelete
Nó sẽ chỉ trả về kết quả dưới dạng JSON hoặc XML, nguyên tử, OData, v.v. (dữ liệu nhẹ)
REST based services
Thực hiện theo một số nguyên tắc trên và không phải tất cả
RESTFUL services
có nghĩa là nó tuân theo tất cả các nguyên tắc trên.
Nó tương tự như khái niệm:
Object-based languages
hỗ trợ tất cả các khái niệm OOP, ví dụ : C ++, C #
Object oriented languages
hỗ trợ một số tính năng của OOP, ví dụ : JavaScript, VB
Ví dụ :
ASP Dot NET MVC 4 là REST-Based
trong khi Microsoft WEB API RESTFul
.
MVC chỉ hỗ trợ một số nguyên tắc REST ở trên trong khi API WEB hỗ trợ tất cả các Nguyên tắc REST ở trên.
MVC chỉ hỗ trợ các mục sau từ API REST
Chúng tôi có thể truy cập tài nguyên bằng URI
Nó hỗ trợ động từ HTTP để truy cập tài nguyên từ máy chủ
Nó có thể trả về các kết quả dưới dạng JSON, XML, đó là HTTPResponse.
Tuy nhiên, cùng lúc trong MVC
Chúng ta có thể sử dụng phiên
Chúng ta có thể làm cho nó có trạng thái
Chúng tôi có thể trả lại video hoặc hình ảnh từ phương thức hành động của bộ điều khiển, về cơ bản vi phạm các nguyên tắc REST
Đó là lý do tại sao MVC là REST-Based
API WEB hỗ trợ tất cả các nguyên tắc trên RESTFul
.
"REST" là một mô hình kiến trúc. "RESTful" mô tả bằng cách sử dụng mô hình đó.
architect
của cái gì? của url? như https://translation.googleapis.com/language/translate/v2
đây là phong cách REST?
Như Jason đã nói trong các bình luận, RESTful chỉ được sử dụng như một tính từ mô tả một cái gì đó tôn trọng các ràng buộc REST.
REST là viết tắt của chuyển trạng thái đại diện. Điều đó có nghĩa là chính nó không được chuyển giao mà chỉ là một đại diện của nó. Ví dụ phổ biến nhất là một ứng dụng dựa trên máy chủ HTML thuần túy (không có javascript). Trình duyệt không biết gì về chính ứng dụng nhưng thông qua các liên kết và tài nguyên, máy chủ có thể chuyển trạng thái của ứng dụng sang trình duyệt. Trong đó một nút thường sẽ thay đổi một biến trạng thái (ví dụ: mở trang) trong ứng dụng windows thông thường, trong trình duyệt bạn có một liên kết thể hiện sự thay đổi trạng thái như vậy.
Ý tưởng là sử dụng hypermedia. Và có lẽ để tạo ra các loại hypermedia mới. Có khả năng chúng ta có thể mở rộng trình duyệt bằng javascript / AJAX và tạo các loại hypermedia tùy chỉnh mới. Và chúng ta sẽ có một ứng dụng REST thực sự.
Đây là phiên bản ngắn của tôi về những gì REST đại diện, vấn đề là nó khó thực hiện. Cá nhân tôi nói RESTful, khi tôi muốn tham khảo các nguyên tắc REST nhưng tôi biết tôi không thực sự thực hiện toàn bộ khái niệm về REST. Chúng tôi thực sự không nói SOAPful, vì bạn có sử dụng SOAP hay không. Tôi nghĩ rằng hầu hết mọi người không làm REST theo cách mà người sáng tạo ra nó là Roy Fielding, chúng tôi thực sự triển khai các kiến trúc RESTful hoặc RESTlike. Bạn có thể xem luận văn của anh ấy , và bạn sẽ tìm thấy từ viết tắt REST nhưng không phải là từ RESTful.
REST là một kiểu kiến trúc phần mềm cho phần mềm phân tán
Tuân thủ các ràng buộc REST được gọi là 'RESTful'.
Rất được sử dụng ngày nay để xây dựng các dịch vụ web thay thế cho SOAP.
Ở đây bạn có một số liên kết để kiểm tra
http://en.wikipedia.org/wiki/Repftimeatic_State_Transfer
http://www.computerworld.com/s/article/297424/Repftimeation_State_Transfer_REST_
http://www.ibm.com/developerworks/webservice/l Library / ws-restful /
cảm ơn vì câu trả lời Đọc bài viết này của Alex Rodriguez, gợi ý rằng dịch vụ web RESTful có 4 đặc điểm cơ bản đó là:
Chuyển giao trạng thái đại diện (REST) là một kiểu kiến trúc phần mềm cho các hệ thống hypermedia phân tán như World Wide Web. Thuật ngữ Chuyển giao Nhà nước Đại diện đã được giới thiệu và định nghĩa vào năm 2000 bởi Roy Fielding 1 [2] trong luận án tiến sĩ của mình. Fielding là một trong những tác giả chính của phiên bản đặc tả Giao thức truyền siêu văn bản (HTTP) 1.0 và 1.1. Tuân thủ các ràng buộc REST được gọi là 'RESTful'. Nguồn: Wikipedia
Các dịch vụ web về cơ bản là các trang web có nội dung được sử dụng bởi các chương trình máy tính chứ không phải con người. REST là một tập hợp các nguyên tắc kiến trúc quy định rằng các dịch vụ web nên tận dụng tối đa HTTP và các tiêu chuẩn web khác, để các chương trình đạt được tất cả những thứ tốt mà mọi người đã có thể thoát khỏi web. REST thường tương phản với các dịch vụ web SOAP và các dịch vụ web định hướng "gọi thủ tục từ xa" khác.
Các bài thuyết trình của Stefan Tilkov trên REST tại Parley.com khá hay, đặc biệt là bài này .
Đối với một cuốn sách, bạn không thể nhận được bất kỳ điều gì tốt hơn Dịch vụ web yên tĩnh của Richardson và Ruby .
Một dịch vụ dựa trên REST được gọi là "dịch vụ RESTful".
Nguồn tôi dựa vào việc đăng tải rằng: Lưu trữ Dr.Dobbs
Có 4 cấp độ API được xác định trong Mô hình trưởng thành của Richardson. Chúng được định nghĩa là:
cấp 0: bất kỳ hệ thống nào có một điểm cuối duy nhất cho tất cả các apis của nó (SOAP hoặc RPC nằm trong danh mục này). Apis cấp 0 cũng có thể giống với "lệnh".
cấp 1: một hệ thống mô tả ResourceUri. Đây là một hệ thống xác định nhiều URI dựa trên thực thể (thay vì có một điểm cuối duy nhất như hệ thống cấp 0). Các URI này có thể sử dụng các hành động http khác nhau (POST, GET, PUT, v.v.) để triển khai các hành động khác nhau đối với tài nguyên đó.
cấp 2: còn gọi là cấp 1 với việc sử dụng tuân thủ các phương thức / động từ HTTP tiêu chuẩn và phản hồi mã đa trạng thái
cấp 3: còn gọi là cấp 2 cộng với HATEOAS (hypermedia có trong phản hồi mô tả các cuộc gọi bổ sung mà bạn có thể thực hiện)
Trong khi cấp 1, cấp 2 và cấp 3 có thể được coi là hệ thống REST, chỉ có các cấp độ nghiêm ngặt hơn (còn gọi là cấp 2 và cấp 3) được coi là RESTful.
Vì vậy, về cơ bản tất cả các apis RESTful đều là REST apis, nhưng không phải tất cả các apis REST đều là RESTful
"Dịch vụ REST" và "Dịch vụ RESTful" là một và giống nhau.
Hệ thống RESTful là bất kỳ hệ thống nào tuân theo các quy ước REST như được định nghĩa trong tài liệu gốc đã tạo ra ý tưởng về các ứng dụng được kết nối mạng RESTful .
Điều đáng chú ý là có nhiều mức độ khác nhau của RESTfulness. Nhìn chung, REST là một phong cách, không phải là một tiêu chuẩn, vì vậy có chỗ để giải thích dựa trên nhu cầu. một ví dụ là URL tài nguyên phân cấp (ví dụ /things/ID/relatedthings
) so với URL phẳng (ví dụ /things/ID
và /relatedthings?thing=ID
)