「ASP.NET Web API」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
1行目: 1行目:
'''ASP.NET Web API'''とは、[[ASP.NET MVC 4]]で追加される予定のRESTfulなサービスを構築するためのフレームワークである。
+
'''ASP.NET Web API'''とは、[[ASP.NET MVC 4]]で追加されたRESTfulなサービスを構築するためのフレームワークである。
 +
現在は[[ASP.NET MVC]]の一部ではなく完全に分離されて単独のフレームワークとして[[NuGet]]で提供されている。
  
 
== ASP.NET MVC と ASP.NET Web API ==
 
== ASP.NET MVC と ASP.NET Web API ==
6行目: 7行目:
  
 
たとえば、[[アクションコントローラー]]の根底にある[[インターフェイス]]も[[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===
 
ASP.NET Web API 2.0以降では単体で動くようになり[[NuGet]]から簡単に環境を構築し利用できる。また[[Mono]]でも問題なく利用できるようになり[[Mac OS X]]上の[[Xamarin Studio]]での開発も可能になった。
 
ASP.NET Web API 2.0以降では単体で動くようになり[[NuGet]]から簡単に環境を構築し利用できる。また[[Mono]]でも問題なく利用できるようになり[[Mac OS X]]上の[[Xamarin Studio]]での開発も可能になった。
  
 
== RESTful ==
 
== RESTful ==
ASP.NET Web API では、新しい強く型付けされた HTTP オブジェクトモデルを使って HTTP リクエストとレスポンスを直接操作できる。  
+
ASP.NET Web API では新しい強く型付けされた HTTP オブジェクトモデルを使って HTTP リクエストとレスポンスを直接操作できる。  
  
 
[[ASP.NET MVC]]のデフォルトの[[ASP.NET MVC/ルーティング|ルーティング]]は以下のようになっている。
 
[[ASP.NET MVC]]のデフォルトの[[ASP.NET MVC/ルーティング|ルーティング]]は以下のようになっている。
51行目: 53行目:
 
| idで指定されたデータを削除する。
 
| idで指定されたデータを削除する。
 
|}
 
|}
 +
 +
==その他==
 +
*[[ASP.NET Web API/NUnitでユニットテストを行う]]
  
 
== 関連項目 ==
 
== 関連項目 ==
58行目: 63行目:
 
** [[ASP.NET MVC 3]]
 
** [[ASP.NET MVC 3]]
 
** [[ASP.NET MVC 4]]
 
** [[ASP.NET MVC 4]]
 +
 
== 参考文献 ==
 
== 参考文献 ==
<references/>
+
{{reflist}}
== 外部リンク ==
 
  
 
{{stub}}
 
{{stub}}
 +
 +
[[category:.NET Framework]]

2015年8月5日 (水) 05:48時点における版

ASP.NET Web APIとは、ASP.NET MVC 4で追加されたRESTfulなサービスを構築するためのフレームワークである。 現在はASP.NET MVCの一部ではなく完全に分離されて単独のフレームワークとしてNuGetで提供されている。

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で指定されたデータを削除する。

その他

関連項目

参考文献