ADO.NET Data Services
最近気になっているREST Webサービスの.NET実装
検索条件の指定やデータのナビゲーションが豊富に指定可能です。かなりSQLぽい指定です。
全Categoriesデータ取得
http://astoria.sandbox.live.com/northwind/northwind.rse/CategoriesCategoriesのプライマリキーが1の全てのProductsを取得
http://astoria.sandbox.live.com/northwind/northwind.rse/Categories[1]/ProductsCategoriesの名前が‘Beverages’の全てのProductsを取得
http://astoria.sandbox.live.com/northwind/northwind.rse/Categories[CategoryName eq 'Beverages']/Productscity が 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からドメインモデルを作って公開ですね。