いくつかのWebサービスを調べているときに、Microsoftが OData と呼んでいるこの「新しい」テクノロジーに出会いました。 ODataについてFAQ内の説明を読んで、ODataをREST対応のWebサービスと区別するのに苦労しています。誰かが違いを理解するのを手伝ってもらえますか?
UPDATE警告、OData V4が利用可能になった今、この回答は非常に古くなっています。
私はしばらく前にこのテーマに関する投稿を書きました here 。
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から ドキュメント :
ODataプロトコルは、RESTful Webサービスを介してデータと対話するためのアプリケーションレベルのプロトコルです。
...
ODataプロトコルは、他のRESTベースのWebサービスアプローチとは異なり、データとデータモデルの両方を統一的に記述する方法を提供します。
ODATAは特殊な種類ですRESTここでできることデータを一律にクエリする URLから。
OData(Open Data Protocol)は、RESTful APIを構築および使用するためのベストプラクティスを定義するOASIS標準です。 ODataは、リクエストヘッダーとレスポンスヘッダー、ステータスコード、HTTPメソッド、URL規則、メディアタイプ、ペイロード形式、クエリオプションなどを定義するアプローチを心配することなく、RESTful APIを構築しながらビジネスロジックに集中するのに役立ちます。変更の追跡、再利用可能な手順の関数/アクションの定義、非同期/バッチ要求の送信など。さらに、ODataは、RESTful APIのカスタムニーズを満たす拡張機能を提供します。
OData RESTful APIは簡単に使用できます。 ODataメタデータは、APIのデータモデルの機械可読な記述であり、強力な汎用クライアントプロキシおよびツールの作成を可能にします。それらのいくつかは、プロトコルについて何も知らなくても、ODataと対話するのに役立ちます。次の6つの手順は、さまざまなプログラミングプラットフォームでのOData消費の6つの興味深いシナリオを示しています。しかし、あなたが開発者ではなく、単にODataで遊んでみたいなら、XODataが最適なスタートです。
詳細については http://www.odata.org/
RESTの略RE presentational S tate T ransferはリソースベース建築スタイル。リソースベースとは、データと機能がリソースと見なされることを意味します。
ODataは、RESTful Webサービスを構築および使用するための一連のベストプラクティスを定義するWebベースのプロトコルです。 ODataはRESTful Webサービスを作成する方法であり、RESTの実装です。