OData と REST Web サービスの違い
-
20-09-2019 - |
質問
いくつかの Web サービスを調べているときに、Microsoft が「新しい」テクノロジーと呼んでいるものを見つけました。 Oデータ. 。OData とは何かに関する FAQ 内の説明を読んでいると、OData と REST-ful Web サービスを区別するのに苦労しています。誰かが違いを理解するのを手伝ってくれませんか?
解決
アップデート 警告、OData V4 が利用可能になった現在、この回答は非常に時代遅れです。
少し前にこのテーマについて記事を書きました ここ.
Franci 氏が述べたように、OData は Atom Pub に基づいています。ただし、いくつかの機能を最上位に階層化しており、残念ながらそのプロセスで REST 制約の一部を無視しています。
OData サービスのクエリ機能を使用するには、利用できない情報、または応答内でリンクされている情報に基づいて URI を構築する必要があります。これは REST の人々が帯域外情報と呼ぶもので、クライアントとサーバーの間に隠れた結合が導入されます。
導入されるもう 1 つの結合は、EDMX メタデータを使用してエントリ コンテンツに含まれるプロパティを定義することです。このメタデータは、$metadata と呼ばれる固定エンドポイントで検出できます。繰り返しますが、クライアントはこれを事前に知っておく必要があり、発見することはできません。
残念ながら、Microsoft はこれらの重要なデータ部分を説明するメディア タイプを作成するのが適切とは考えていませんでした。そのため、OData クライアントは、通信しているサービスと受信しているデータについて多くの仮定を立てる必要があります。
他のヒント
のODataプロトコルは、のAtomPubプロトコルの上に構築されています。 AtomPubプロトコルは、RESTのAPI設計の最も良い例の一つです。だから、ある意味であなたは正しいです - ODataのは、ちょうど別のREST APIであり、各ODataの実装は、REST-FULウェブサービスです。
。の違いは、ODataの特定のプロトコルであるということです。 RESTアーキテクチャスタイルとデザインパターンです。
REST は、Web サービスにアクセスする方法を記述するために使用される一般的な設計手法です。REST を使用すると、http リクエストを作成してデータを取得できます。ブラウザで試してみると、Web ページを返す代わりに XML が返される点を除けば、Web サイトにアクセスするのと同じです。一部のサービスは、JavaScript で使用しやすい JSON 形式でデータを返します。
OData は、REST を通じてデータを公開する特定のテクノロジーです。
簡単に要約したい場合は、次のように考えてください。
- REST - デザインパターン
- OData - 実現するテクノロジー
2012 年に OData は標準化されたので、ここに更新情報を追加するだけです。
まず定義:
休む - HTTP 経由でメッセージを送信する方法のアーキテクチャです。
OData V4- REST の特定の実装であり、実際にはさまざまな形式 (現時点では AtomPub と JSON だと思います) でメッセージのコンテンツを定義します。ODataV4 は REST 原則に従います。
たとえば、asp.net のユーザーは主に WebApi コントローラーを使用して、オブジェクトを JSON にシリアル化/逆シリアル化し、JavaScript でそれを処理させます。Odataのポイントは、すぐにボックスオプションを使用してURLから直接クエリできることです。
のODataから<のhref = "http://www.odata.org/documentation/odata-version-3-0/odata-version-3-0-core-protocol#overview" のrel = "noreferrer" >ドキュメントでます:
のODataプロトコルは、RESTful Webサービスを介してデータと対話するためのアプリケーションレベルのプロトコルです。
...
のODataプロトコルは、データとデータモデルの両方を記述する統一的な方法を提供することに近づく他のRESTベースのWebサービスとは異なる。
大データ 特別な種類の 休む どこでできるか データを均一にクエリする URLから。
の詳細は、のOData(オープンデータプロトコル)最良定義OASIS標準であります RESTfulなAPIを構築し、消費するための練習。 ODataのは、あなたを助けます なしRESTfulなAPIを構築しながら、あなたのビジネスロジックに集中 リクエストとレスポンスを定義するためのアプローチを気にすること ヘッダ、ステータスコード、HTTPメソッド、URLの規則、メディアタイプ、 ペイロードフォーマットおよびクエリオプションなどのODataもについてご案内します 変更の追跡、関数の定義/再利用可能な手続きのためのアクション そして、さらになどのODataを非同期/バッチリクエストを送信します あなたのカスタムニーズを満たすために拡張する機能を提供 RESTfulなAPIを使用します。
ODataのRESTfulなAPIが消費するのは簡単です。 ODataのメタデータ、 APIのデータモデルの機械読み取り可能な説明は、可能 強力な一般的なクライアントプロキシおよびツールの作成。いくつかの 彼らはあなたも何も知らなくても、ODataのと対話することができます プロトコルに関する。以下の6つのステップは、6興味深い実証します 異なるプログラミングプラットフォーム間でのOData消費のシナリオ。 しかし、あなたは非開発者であり、単純にプレイしたい場合 ODataの、XODataはあなたのための最高のスタートです。
休む を意味する REプレゼンテーション的な Sたて Transfer はリソースベースのアーキテクチャ スタイルです。リソースベースとは、データと機能がリソースとして考慮されることを意味します。
Oデータ は、RESTful Web サービスを構築および利用するための一連のベスト プラクティスを定義する Web ベースのプロトコルです。OData は RESTful Web サービスを作成する方法であり、REST の実装です。