ADO.NET Data Services

最近気になっているREST Webサービスの.NET実装
検索条件の指定やデータのナビゲーションが豊富に指定可能です。かなりSQLぽい指定です。

全Categoriesデータ取得
http://astoria.sandbox.live.com/northwind/northwind.rse/Categories

Categoriesのプライマリキーが1の全てのProductsを取得
http://astoria.sandbox.live.com/northwind/northwind.rse/Categories[1]/Products

Categoriesの名前が‘Beverages’の全てのProductsを取得
http://astoria.sandbox.live.com/northwind/northwind.rse/Categories[CategoryName eq 'Beverages']/Products

city が Londonの全てのcustomersを取得
http://astoria.sandbox.live.com/northwind/northwind.rse/Customers[City eq 'London']

キーがALFKIのcustomerを取得
http://astoria.sandbox.live.com/northwind/northwind.rse/Customers[ALFKI]

キーがALFKIのcustomerを取得して関連するordersをあわせて取得
http://astoria.sandbox.live.com/northwind/northwind.rse/Customers[ALFKI]?$expand=Orders

ソート・範囲検索の例
http://astoria.sandbox.live.com/northwind/northwind.rse/Products[Discontinued eq false]?$orderby=ProductName&$skip=8&$top=4

ここでの例では公開するリソースは単なるデータベースのテーブルレベルですが、よりリッチなモデルにすることでポテンシャルがかなりあがるんだろうなと思っています。もちろん、DDDからドメインモデルを作って公開ですね。