ごった煮

色々な事を書いてます

ODataとは

ODATAというものをご存知でしょうか

ODATAとは, Open Data Protocolというもので, データの照会や更新などを行うリソースベースなプロトコルです.

URLでクエリを発行できるなどなかなか発展性の強いプロトコルです.

ODATAは, XML, Jsonなどの形式でデータを扱え, .NET, PHP, Java, Node.js, etc...と幅広いプラットフォームに対応してマルチにデータを活用可能です.

ODATAの詳しい情報は, ここから閲覧できます.

Microsoftが主導となり, 業界標準を目指して普及させていく段階にあり, ASP.NETでは, WebAPIと合わせてODATAを扱うコントローラが用意されていたりします.

ODATAで処理を行う場合は, 基本的にHTTPで扱われている動詞を扱って,

  • POST : 新規作成
  • PUT : 更新
  • DELTE : 削除
  • MERGE : 一括更新

のように全く新しい概念を覚える必要はありません.

ASP.NET で基本的な実装

以下に, ASP.NET + EntityFrameworkでの一番シンプルな実装を紹介します.

プロジェクトは, ASP.NET WebAPIのテンプレートを選択していることを前提とします.

WebAPIConfig

まず, APP_Start/WebAPIConfigで,config.EnableQuerySupport(); を追加します.

この行では, ODATAのクエリの使用を許可します.

また, アクセス経路を設定するために,

var builder = new  ODataConventionModelBuilder();
builder.EntitySet<使用するモデル>("コントローラ名");
config.Routes.MapODataRoute("ODataRoute", "odata", builder.GetEdmModel());

として, あとはコントローラを作成すれば, http://contoso.com/odata/コントローラ名

としてアクセスできます.

/odataは, MapODataRouteの第二引数で指定した文字列となるので, これらをいくつか用意して第一引数の経路名と合わせて複数の経路を作成することも可能です.

まとめ

簡単なODataの紹介と, ASP.NETでのODataでの基本的な実装を紹介しました.

実装は, この後はWebAPIと同様の扱いで実装可能となります.

リクエスト時にクエリを投げられるのは, 非常に便利ですし, 今後標準となっていくかもしれませんので, 今覚えておくのもいいかもしれません.