Câu trả lời:
REST là một kiến trúc cho cách gửi tin nhắn qua lại từ máy khách đến máy chủ bằng HTTP. OData là một tiêu chuẩn vô địch bởi Microsoft sử dụng kiến trúc REST để gửi các loại thông báo cụ thể qua HTTP. OData nói về những thông điệp trông như thế nào (nội dung). REST là kiến trúc về cách các tin nhắn được gửi qua lại.
Tôi đồng ý với cả @jkohlhepp và @Tom Squires, mặc dù sẽ thêm một vài chi tiết.
OData là một tiêu chuẩn mở (do Microsoft vô địch, nhưng được áp dụng ngoài Microsoft và có sẵn cho nhiều nền tảng, bao gồm cả iOS và Android).
Tải trọng OData dựa trên định dạng Atom (đọc) và AtomPub (cập nhật). (Bên cạnh đó, Atom cũng là cơ sở cho định dạng nguồn cấp RSS phổ biến.) Atom có thể mở rộng và OData đã tận dụng điều này để tạo các tiện ích mở rộng nổi tiếng. Ví dụ: với dịch vụ OData, có các Quy ước URI với nhiều khả năng, chẳng hạn như lọc (lọc theo ngày hoặc tên khách hàng) và sắp xếp, v.v. Sử dụng các quy ước đặc biệt này theo cách tiêu chuẩn (do OData xác định) làm cho OData trở nên mạnh mẽ vì chúng hoạt động tương tự nhau và chúng ta có thể xây dựng các công cụ để chống lại chúng và như vậy.
Có một số nguồn OData nổi tiếng có sẵn, chẳng hạn như Netflix (tất cả dữ liệu phim của họ đều ở đó - có thể rất vui khi chơi cùng!).
Đọc tất cả về OData tại odata.org .
Chúc may mắn! -Hóa đơn
REST là một phong cách kiến trúc của việc xây dựng các dịch vụ web. Đây chỉ là một mô hình nói rằng bạn có thể sử dụng HTTP và các động từ của nó (POST / PUT / GET, v.v.) để thực hiện CRUD trên Tài nguyên được hiển thị bởi Dịch vụ của bạn. Nhưng REST thiếu bất kỳ chi tiết nào về cách các URL sẽ trông như thế nào, cách yêu cầu / định dạng phản hồi sẽ như thế nào, cách truy vấn thông tin hoặc ở mức cơ bản những hoạt động và tài nguyên mà dịch vụ hỗ trợ ở nơi đầu tiên!
Trong thế giới của các dịch vụ web dựa trên XML, chúng tôi có SOAP, WSDL, WS- * xác định các tiêu chuẩn cho phép khả năng tương tác giữa các dịch vụ khác nhau và các máy khách của chúng.
OData đang cố gắng làm điều này cho các dịch vụ web dựa trên REST.
Nó định nghĩa $ siêu dữ liệu ở định dạng cơ sở dữ liệu để giải thích loại (thực thể / phức tạp) loại dịch vụ của bạn hỗ trợ và thuộc tính của chúng, loại dữ liệu của chúng, loại của bạn có liên quan như thế nào và nếu dịch vụ của bạn cũng hỗ trợ một số hoạt động đặc biệt ngoài CRUD truyền thống.
OData chuẩn hóa các định dạng URL cho viz tài nguyên của bạn, / Thực thể, / Thực thể ('id') hoặc / Thực thể (key1 = value1, key2 = value2) ... vv.
OData chuẩn hóa các định dạng yêu cầu / phản hồi trong JSON và AtomXml về cách cấu trúc dữ liệu và siêu dữ liệu của nó.
OData cũng chỉ định một ngôn ngữ truy vấn rất phong phú để cho phép người tiêu dùng truy vấn dịch vụ của bạn để biết thông tin chính xác mà họ đang tìm kiếm - với sự trợ giúp của bộ lọc $, $ orderby, $ Skip, $ top, $ bung rộng.
OData giúp bạn mô tả toàn bộ Mô hình Dữ liệu của mình - Các thực thể và Mối quan hệ của chúng và hỗ trợ tất cả các loại hoạt động như TẠO, CẬP NHẬT, XÓA, NHẬN, MERGE và thậm chí HOẠT ĐỘNG TÙY CHỈNH trên các Thực thể và / hoặc Mối quan hệ này.
OData v4 hiện là một tiêu chuẩn OASIS có nhiều cải tiến so với các phiên bản trước đó. Hệ sinh thái cho OData đang dần phát triển.
OData là một tiêu chuẩn được triển khai bằng REST.