「ASP.NET Web API」の版間の差分
imported>Administrator |
|||
2行目: | 2行目: | ||
== ASP.NET MVC と ASP.NET Web API == | == ASP.NET MVC と ASP.NET Web API == | ||
+ | === ASP.NET Web API 1.0=== | ||
[[ASP.NET Web API]]は、[[ASP.NET MVC 4]]のパッケージに同梱されているだけであり、従来の[[ASP.NET MVC]]とはまったく別物である点に注意すること。 | [[ASP.NET Web API]]は、[[ASP.NET MVC 4]]のパッケージに同梱されているだけであり、従来の[[ASP.NET MVC]]とはまったく別物である点に注意すること。 | ||
たとえば、[[アクションコントローラー]]の根底にある[[インターフェイス]]も[[ASP.NET MVC]]では[[IController]]だが([[ASP.NET]]無印と共通)、[[ASP.NET Web API]]ではまったく新規に登場した[[IHttpController]]となっている。また[[アクション]]の戻り値も[[ActionResult]]ではなく[[HttpResponseMessage]]となっているなど、「名前は似ているが全くの別物が用意されている」と認識しておく必要がある。 | たとえば、[[アクションコントローラー]]の根底にある[[インターフェイス]]も[[ASP.NET MVC]]では[[IController]]だが([[ASP.NET]]無印と共通)、[[ASP.NET Web API]]ではまったく新規に登場した[[IHttpController]]となっている。また[[アクション]]の戻り値も[[ActionResult]]ではなく[[HttpResponseMessage]]となっているなど、「名前は似ているが全くの別物が用意されている」と認識しておく必要がある。 | ||
+ | === ASP.NET Web API 2.0=== | ||
+ | ASP.NET Web API 2.0以降では単体で動くようになり[[NuGet]]から簡単に環境を構築し利用できる。また[[Mono]]でも問題なく利用できるようになり[[Mac OS X]]上の[[Xamarin Studio]]での開発も可能になった。 | ||
== RESTful == | == RESTful == |
2015年7月31日 (金) 07:05時点における版
ASP.NET Web APIとは、ASP.NET MVC 4で追加される予定のRESTfulなサービスを構築するためのフレームワークである。
目次
ASP.NET MVC と ASP.NET Web API
ASP.NET Web API 1.0
ASP.NET Web APIは、ASP.NET MVC 4のパッケージに同梱されているだけであり、従来のASP.NET MVCとはまったく別物である点に注意すること。
たとえば、アクションコントローラーの根底にあるインターフェイスもASP.NET MVCではIControllerだが(ASP.NET無印と共通)、ASP.NET Web APIではまったく新規に登場したIHttpControllerとなっている。またアクションの戻り値もActionResultではなくHttpResponseMessageとなっているなど、「名前は似ているが全くの別物が用意されている」と認識しておく必要がある。
ASP.NET Web API 2.0
ASP.NET Web API 2.0以降では単体で動くようになりNuGetから簡単に環境を構築し利用できる。またMonoでも問題なく利用できるようになりMac OS X上のXamarin Studioでの開発も可能になった。
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で指定されたデータを削除する。 |