ODataと REST-ful Web サービスの違いは何ですか?
8 に答える
UPDATE 警告、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 を介してデータを公開する特定のテクノロジです。
簡単にまとめたい場合は、次のように考えてください。
- REST - デザインパターン
- OData - 実現技術
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は、 URL から均一にデータを照会できる特別な種類のRESTです。
OData (Open Data Protocol) は、RESTful API を構築および使用するためのベスト プラクティスを定義する OASIS 標準です。OData を使用すると、RESTful API を構築しながらビジネス ロジックに集中できます。要求と応答のヘッダー、ステータス コード、HTTP メソッド、URL 規則、メディア タイプ、ペイロード形式、クエリ オプションなどを定義するアプローチについて心配する必要はありません。OData は、以下についてもガイドします。変更の追跡、再利用可能な手順の関数/アクションの定義、非同期/バッチ要求の送信など。さらに、OData は、RESTful API のカスタム ニーズを満たすための拡張機能を提供します。
OData RESTful API は簡単に使用できます。API のデータ モデルの機械可読な記述である OData メタデータを使用すると、強力な汎用クライアント プロキシとツールを作成できます。それらのいくつかは、プロトコルについて何も知らなくても OData を操作するのに役立ちます。次の 6 つの手順は、さまざまなプログラミング プラットフォームでの OData の使用に関する 6 つの興味深いシナリオを示しています。しかし、開発者ではなく、OData を使ってみたいという方には、XOData から始めるのが最適です。
詳細については、http://www.odata.org/を参照してください。
RESTは、リソース ベースのアーキテクチャ スタイルである REpresentational State Transferの略です。リソースベースとは、データと機能がリソースと見なされることを意味します。
ODataは、RESTful Web サービスを構築および使用するための一連のベスト プラクティスを定義する Web ベースのプロトコルです。OData は RESTful Web サービスを作成する方法であり、REST の実装です。