「ASP.NET Web API」の版間の差分
| (3人の利用者による、間の3版が非表示) | |||
| 1行目: | 1行目: | ||
'''ASP.NET Web API'''とは、[[ASP.NET MVC 4]] | '''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 == | ||
=== ASP.NET Web API 1.0=== | === ASP.NET Web API 1.0=== | ||
[[ASP.NET Web API]]は、[[ASP.NET MVC 4]] | [[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=== | ||
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]]での開発も可能になった。またXamarin Studio 6.0およびMono 4.4ではWeb APIを標準で利用できるようになり、ASP.NET系の新規プロジェクト作成時にWeb API利用の有無を選択するチェックボックスが搭載され、より手軽に利用できるようになっている。 | ||
== RESTful == | == RESTful == | ||
ASP.NET Web API | ASP.NET Web API では新しい強く型付けされた HTTP オブジェクトモデルを使って HTTP リクエストとレスポンスを直接操作できる。 | ||
[[ASP.NET MVC]]のデフォルトの[[ASP.NET MVC/ルーティング|ルーティング]]は以下のようになっている。 | [[ASP.NET MVC]]のデフォルトの[[ASP.NET MVC/ルーティング|ルーティング]]は以下のようになっている。 | ||
| 31行目: | 33行目: | ||
どちらもcontroller(コントローラー名)とid(引数)をとるのは共通だが、ASP.NET Web APIではactionが無くなっており、[[REST]]のルール(HTTPリクエストメソッドの種類)に応じて強制的にアクションが決定する。従って、[[HttpPost]]などの属性をクラスやメソッドに付加する必要がない(「[[ASP.NET MVC/セレクター]]」も参照)。 | どちらもcontroller(コントローラー名)とid(引数)をとるのは共通だが、ASP.NET Web APIではactionが無くなっており、[[REST]]のルール(HTTPリクエストメソッドの種類)に応じて強制的にアクションが決定する。従って、[[HttpPost]]などの属性をクラスやメソッドに付加する必要がない(「[[ASP.NET MVC/セレクター]]」も参照)。 | ||
===基本ルール === | |||
まずHTTPリクエストメソッドの種類がそのまま[[CRUD]]に対応している。 | |||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
| 51行目: | 55行目: | ||
| idで指定されたデータを削除する。 | | idで指定されたデータを削除する。 | ||
|} | |} | ||
* GET /api/user/100 | |||
* userControllerクラスのGet(100)メソッドが呼ばれる | |||
この他のメソッド名にすると明示的に指定するメソッドになる。 | |||
* GET /api/user/search?name=abc | |||
* userControllerクラスのsearch(abc)メソッドが呼ばれる。 | |||
==その他== | |||
*[[ASP.NET Web API/NUnitでユニットテストを行う]] | |||
== 関連項目 == | == 関連項目 == | ||
| 58行目: | 72行目: | ||
** [[ASP.NET MVC 3]] | ** [[ASP.NET MVC 3]] | ||
** [[ASP.NET MVC 4]] | ** [[ASP.NET MVC 4]] | ||
== 参考文献 == | == 参考文献 == | ||
{{reflist}} | |||
{{stub}} | {{stub}} | ||
[[category: .NET Framework]] | |||
[[category: ASP.NET]] | |||
[[category: Xamarin.Studio]] | |||