クライアント アプリケーションでのデータ サービスの使用 (WCF Data Services)

Web ブラウザーに URI を入力することで、Open Data Protocol (OData) フィードを公開するサービスにアクセスできます。 URI はリソースのアドレスを提供し、要求メッセージがこれらのアドレスに送信されてリソースが表す基になるデータのアクセスまたは変更を行います。 ブラウザーは HTTP GET コマンドを発行して、要求されたリソースを OData フィードとして返します。 詳細については、「Web ブラウザーからサービスへのアクセス (WCF Data Services クイックスタート)」を参照してください。

Web ブラウザーは OData サービスが予期されたデータを返すかどうかをテストするために便利ですが、データの作成、更新、および削除も行うことができる運用 OData サービスは、一般的にアプリケーション コードや Web ページのスクリプト言語を使用してアクセスします。 このトピックでは、クライアント アプリケーションから OData フィードにアクセスする方法の概要について説明します。

REST セマンティクスを使用したデータのアクセスおよび変更

OData は、OData フィードを公開するサービスと OData フィードを使用するアプリケーションの間の相互運用性を保証するのに役立ちます。 アプリケーションは、特定の HTTP アクションの要求メッセージ、およびアクションを実行するエンティティ リソースのアドレスを指定する URI を送信して、OData ベースのサービス内のデータのアクセスおよび変更を行います。 エンティティ データを指定する必要がある場合、メッセージの本文に、エンコードされたペイロードとして明示的に指定します。

HTTP アクション

OData は、アドレス指定されたリソースが表すエンティティ データに対する操作の作成、読み取り、更新、および削除を実行する次の HTTP アクションをサポートします。

  • HTTP GET - これは、ブラウザーからリソースにアクセスするときの既定のアクションです。 要求メッセージではペイロードは指定されず、要求されたデータを含むペイロードを含む応答メソッドが返されます。

  • HTTP POST - 新しいエンティティ データを指定されたリソースに挿入します。 挿入するデータは、要求メッセージのペイロードで指定されます。 応答メッセージのペイロードには、新しく作成されたエンティティのデータが含まれます。 これには自動生成されたキー値が含まれます。 ヘッダーには、新しいエンティティ リソースのアドレスを指定する URI も含まれます。

  • HTTP DELETE - 指定したリソースが表すエンティティ データを削除します。 ペイロードは要求メッセージおよび応答メッセージ内に存在しません。

  • HTTP PUT - 要求されたリソースの既存のエンティティ データを、要求メッセージのペイロードで指定された新しいデータで置き換えます。

  • HTTP MERGE - エンティティ データを変更するためだけに削除を実行した後にデータ ソースへの挿入を実行する非効率性を考慮して、OData では新しい HTTP MERGE アクションが導入されています。 要求メッセージのペイロードには、アドレス指定されたエンティティ リソースで変更する必要のあるプロパティが含まれます。 HTTP MERGE は HTTP 仕様で定義されていないので、OData 対応のサーバー以外で HTTP MERGE 要求をルーティングするには追加の処理が必要になる場合があります。

詳細については、「OData: 操作」を参照してください。

ペイロード形式

HTTP PUT、HTTP POST、または HTTP MERGE 要求の場合、要求メッセージのペイロードは、データ サービスに送信するエンティティ データを含んでいます。 ペイロードのコンテンツは、メッセージのデータ形式によって異なります。 そのようなペイロードは、DELETE 以外のすべてのアクションに対する HTTP 応答にも含まれます。 OData は、サービスでのデータのアクセスおよび変更を行うために次のペイロード形式をサポートします。

  • Atom - Web フィード、ポッドキャスト、Wiki、および XML ベースのインターネット機能用に HTTP を介したデータ交換を有効にするために Atom 公開プロトコル (AtomPub) の拡張として OData で定義されている XML ベースのメッセージ エンコーディング。 詳細については、OData: AtomPub 形式に関する Web ページを参照してください。

  • JSON - JSON (JavaScript Object Notation) は、JavaScript プログラミング言語のサブセットに基づく軽量のデータ交換形式です。 詳細については、OData: JavaScript Object Notation (JSON) 形式に関する Web ページを参照してください。

ペイロードのメッセージ形式は、HTTP 要求メッセージのヘッダーで要求されます。 詳細については、OData: 操作に関する Web ページを参照してください。

クライアント ライブラリを使用したデータのアクセスおよび変更

WCF Data Services には、.NET Framework ベースのクライアント アプリケーションおよび Silverlight ベースのクライアント アプリケーションから OData フィードを簡単に使用できるクライアント ライブラリが含まれています。 これらのライブラリは、HTTP メッセージの送受信を簡略化します。 また、メッセージ ペイロードをエンティティ データを表す CLR オブジェクトに変換します。 クライアント ライブラリには、DataServiceContext および DataServiceQuery という 2 つのコア クラスがあります。 これらのクラスを使用すると、データ サービスを照会して、返されるエンティティ データを CLR オブジェクトとして処理できます。 詳細については、「WCF Data Services クライアント ライブラリ」および「WCF Data Services (Silverlight)」を参照してください。

Visual Studio の [サービス参照の追加] ダイアログを使用して、参照をデータ サービスに追加できます。 このツールは、参照されたデータ サービスからサービス メタデータを要求し、データ サービスを表す DataServiceContext を生成します。また、エンティティを表すクライアント データ サービス クラスも生成します。 詳細については、「データ サービス クライアント ライブラリの生成 (WCF Data Services)」を参照してください。

その他の種類のクライアント アプリケーションで OData フィードを使用するためのプログラミング ライブラリを利用できます。 詳細については、OData SDK の Web ページを参照してください。

参照

概念

データ サービス リソースへのアクセス (WCF Data Services)
クイック スタート (WCF Data Services)