BT

InfoQ ホームページ ニュース OData v3とWCF Data Services 5.xを使う

OData v3とWCF Data Services 5.xを使う

ブックマーク

原文(投稿日:2013/01/09)へのリンク

 

.NETでウェブサービスを開発しているなら、ODataを調査対象のフレームワークにするべきだ。特に、よくわからないサードパーティをサポートしなければならない場合だ。ODataはSOAPとATOM (XML)とJSONで表現されるRESTスタイルのメッセージをサポートする。つまり、サービスの利用者は、自分たちにとって最適なフォーマットをリクエストできるのだ。

ODataを始めるなら、Mohamad Halabi氏のUnderstanding OData v3 and WCF Data Services 5.xという記事を読むといいだろう。この記事は、標準的なクイックスタートガイド以上の内容が含まれており、この通信プロトコルそのものの説明をしている。

MicrosoftのODataの実装であるWCF Data Servicesに対する共通の誤解は、MicrosoftのORMであるEntity Frameworkと結びついているということだ。Mohamad氏が明らかにしたのは、Entity Frameworkを使っていないデータソースをウェブサービスで公開する方法だ。静的データを公開するのはシンプルで、List<T>.AsQuerableを呼び出すことでIQueryableプロパティのセットを公開すればいい。MicrosoftはこれをReflection Providerと称している。

より複雑なシナリオの場合は、MSDNのCustom Data Service Providersのページを参照したくなるだろう。このページには実装する必要があるかもしれないさまざまなインターフェースの説明ページへのリンクが含まれている。しかし、残念ながらこれらのインターフェースの多くはあまりドキュメント化されていない。

ODataを使ったサービスを立ち上げる場合、理解する必要がある互換性の問題がある。幸い、Mohamad氏はOData V2とOData V3の違いを説明している。注意を払うべき主要な点はJSONMessageInspectorの登録方法と、JSONとJSON Lightの違い(JSON Lightは多くのメタデータが削除されている)だ。

WCF Data Servicesは第一にCRUDスタイルのサービスを提供することを目的にしている。つまり、作成、読み取り、更新、削除の操作だ。また、ProcessInvoiceメソッドのようなRPCスタイルのサービスも公開できる。これはWebGetとWebInvoke属性で実現できる。残念ながら通常のWCFサービスよりは制限が多い。例えば、“パラメータはプリミティブな型でなければならない”。Service Operationsページでより詳細に説明されている。

ChangeInterceptorとQueryInterceptorはCRUDスタイルのリクエストを書き換えるために使う。この2つは、追加のバリデーションやセキュリティチェックや、操作をブロックして望ましい操作を説明するエラーメッセージを表示するのに利用できる。

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。