回答:
RESTは、HTTPを使用してクライアントからサーバーにメッセージを送受信する方法のアーキテクチャです。ODataは、Microsoftが支持する標準であり、RESTアーキテクチャを使用して特定の種類のメッセージをHTTP経由で送信します。ODataは、メッセージがどのように見えるか(コンテンツ)について話します。RESTは、これらのメッセージを送受信する方法のアーキテクチャです。
@jkohlheppと@Tom Squiresの両方に同意しますが、詳細をいくつか追加します。
ODataはオープンスタンダードです(Microsoftによって選出されましたが、Microsoft以外で採用され、iOSやAndroidを含む多くのプラットフォームで利用可能です)。
ODataペイロードは、Atom(読み取り)およびAtomPub(更新)形式に基づいています。(余談ですが、Atomは人気のあるRSSフィード形式の基礎でもあります。)Atomは拡張可能であり、ODataはこれを利用して有名な拡張機能を作成しました。たとえば、ODataサービスには、フィルタリング(日付または顧客名によるフィルタリング)や並べ替えなど、多くの機能を備えたURI規則があります。これらの特別な規則を標準(OData定義)の方法で使用すると、ODataは同様に機能し、それらに対処するためのツールを構築できるため、ODataは強力になります。
Netflixなど、有名なODataソースがいくつかあります(すべての映画データがあります-遊ぶのは楽しいかもしれません!)。
odata.orgで ODataに関するすべてをお読みください。
幸運を!-ビル
RESTは、Webサービスを構築するアーキテクチャスタイルです。これは、HTTPとその動詞(POST / PUT / GETなど)を使用して、サービスによって公開されるリソースでCRUDを実行できることを示すモデルにすぎません。ただし、RESTには、URLの表示方法、要求/応答形式の表示方法、情報のクエリ方法、またはサービスが最初にサポートする操作とリソースの基本レベルについての詳細がありません。
XMLベースのWebサービスの世界には、SOAP、WSDL、WS- *があり、さまざまなサービスとそのクライアント間の相互運用性を可能にする標準を定義しています。
ODataは、RESTベースのWebサービスに対してこれを実行しようとしています。
サービスがサポートする(エンティティ/複雑な)タイプとそのプロパティ、データタイプ、タイプの関係、およびサービスが従来のCRUD以外の特別な操作もサポートするかどうかを説明するために、CSDL形式で$ metadataを定義します。
ODataは、リソースのURL形式、つまり/ Entity、/ Entity( 'id')または/ Entity(key1 = value1、key2 = value2)...などを標準化します。
ODataは、データとそのメタデータがどのように構造化されているかについて、JSONおよびAtomXmlの要求/応答形式を標準化します。
また、ODataは非常に豊富なクエリ言語を指定して、消費者が$ filter、$ orderby、$ skip、$ top、$ expandの助けを借りて、探している正確な情報についてサービスをクエリできるようにします。
ODataは、データモデル全体-エンティティとその関係を記述し、これらのエンティティおよび/または関係に対するCREATE、UPDATE、DELETE、GET、MERGE、さらにはカスタム操作などのあらゆる種類の操作をサポートします。
OData v4は、以前のバージョンに加えて多くの改良が加えられたOASIS標準になりました。ODataのエコシステムはゆっくりと成長しています。