回答:
更新 警告:OData V4が利用可能になったため、この回答は非常に古くなっています。
私はしばらく前に被写体に記事を書いたここに。
Franciが言ったように、ODataはAtom Pubに基づいています。ただし、一部の機能は最上位にあり、残念ながらプロセス内のREST制約の一部は無視されています。
ODataサービスのクエリ機能では、応答で利用できない、またはリンクされていない情報に基づいてURIを構築する必要があります。これは、RESTの人々がアウトオブバンド情報と呼んでいるものであり、クライアントとサーバー間の隠された結合を導入します。
導入されるもう1つのカップリングは、EDMXメタデータを使用して、エントリーコンテンツに含まれるプロパティを定義することです。このメタデータは、$ metadataと呼ばれる固定エンドポイントで検出できます。繰り返しになりますが、クライアントは事前にこれを知る必要があり、発見することはできません。
残念なことに、Microsoftはこれらの主要なデータを記述するメディアタイプを作成するのに適しているとは考えていなかったため、ODataクライアントは、通信しているサービスと受信するデータについて多くの仮定を行う必要があります。
ODataプロトコルは、AtomPubプロトコルの上に構築されています。AtomPubプロトコルは、REST API設計の最良の例の1つです。つまり、ある意味で正しい-ODataは単なる別のREST APIであり、各OData実装はRESTフルWebサービスです。
違いは、ODataは特定のプロトコルであることです。RESTはアーキテクチャスタイルおよびデザインパターンです。
RESTは、Webサービスへのアクセス方法を記述するために使用される一般的な設計手法です。RESTを使用して、データを取得するためにhttp要求を行うことができます。ブラウザで試してみると、Webページに戻る代わりにXMLが返される以外は、Webサイトにアクセスするのと同じです。一部のサービスは、JavaScriptでより使いやすいJSON形式でデータを返します。
ODataは、RESTを介してデータを公開する特定のテクノロジーです。
簡単にまとめたい場合は、次のように考えてください。
2012年にODataは標準化されたので、ここで更新を追加します。
まず定義:
REST -HTTP経由でメッセージを送信する方法のアーキテクチャです。
OData V4 -RESTの特定の実装であり、実際にはメッセージのコンテンツをさまざまな形式で定義します(現在、私はAtomPubとJSONだと思います)。ODataV4は残りの原則に従います。
たとえば、asp.netの人々は、主にWebApiコントローラーを使用してオブジェクトをJSONにシリアル化/逆シリアル化し、JavaScriptでそれを実行します。Odataのポイントは、すぐに使用できるオプションを使用して、URLから直接クエリを実行できることです。
OData(Open Data Protocol)は、RESTful APIを構築して使用するためのベストプラクティスを定義するOASIS標準です。ODataは、リクエストヘッダーと応答ヘッダー、ステータスコード、HTTPメソッド、URL規則、メディアタイプ、ペイロード形式、クエリオプションなどを定義するアプローチを気にすることなく、RESTful APIを構築しながらビジネスロジックに集中するのに役立ちます。ODataは、変更の追跡、再利用可能なプロシージャの関数/アクションの定義、非同期/バッチリクエストの送信など。さらに、ODataは、RESTful APIのカスタムニーズを満たす拡張機能を提供します。
OData RESTful APIは簡単に使用できます。APIのデータモデルの機械可読な記述であるODataメタデータは、強力な汎用クライアントプロキシとツールの作成を可能にします。それらのいくつかは、プロトコルについて何も知らなくてもODataと対話するのに役立ちます。次の6つのステップは、さまざまなプログラミングプラットフォームでのOData消費の6つの興味深いシナリオを示しています。しかし、あなたが開発者ではなく、単にODataを試してみたい場合は、XODataが最適です。
詳細については、http://www.odata.org/をご覧ください。