ASP.NET Web API

提供: MonoBook
2012年4月9日 (月) 08:48時点におけるimported>Administratorによる版 (→‎ASP.NET MVC と ASP.NET Web API)
ナビゲーションに移動 検索に移動

ASP.NET Web APIとは、ASP.NET MVC 4で追加される予定のRESTfulなサービスを構築するためのフレームワークである。

ASP.NET MVC と ASP.NET Web API

ASP.NET Web APIは、ASP.NET MVC 4のパッケージに同梱されているだけであり、従来のASP.NET MVCとはまったく別物である点に注意すること。

たとえば、アクションコントローラーの根底にあるインターフェイスASP.NET MVCではIControllerだが(ASP.NET無印と共通)、ASP.NET Web APIではIHttpControllerとなっている。またアクションの戻り値もActionResultではなくHttpResponseMessageとなっているなど、「名前は似ているが全くの別物が用意されている」と認識しておく必要がある。

RESTful

ASP.NET Web API では、新しい強く型付けされた HTTP オブジェクトモデルを使って HTTP リクエストとレスポンスを直接操作できる。

ASP.NET MVCのデフォルトのルーティングは以下のようになっている。

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
);

一方、ASP.NET Web APIのデフォルトのルーティングは以下のようになっている。

routes.MapHttpRoute(
    "DefaultApi",
    "api/{controller}/{id}",
    new { id = RouteParameter.Optional }
);

どちらもcontroller(コントローラー名)とid(引数)をとるのは共通だが、ASP.NET Web APIではactionが無くなっており、RESTのルール(HTTPリクエストメソッドの種類)に応じて強制的にアクションが決定する。従って、HttpPostなどの属性をクラスやメソッドに付加する必要がない(「ASP.NET MVC/セレクター」も参照)。

HTTPリクエストメソッド アクション
GET (idなし) 全データを取得する。
GET (id指定) idで指定されたデータ取得する。
POST 新しいデータを追加する。
PUT idで指定されたデータを更新する。
DELETE idで指定されたデータを削除する。

関連項目

参考文献

外部リンク