Open棟梁Project - マイクロソフト系技術情報 Wiki
RESTful な HTTP サービスを構築するためのフレームワーク。
既定では、以下のようにルーティングが定義されている。
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
したがって、Web API のAction Methodを呼び出す際の URL は以下のようになる。
http://server/application/Controller/id
ASP.NET MVC と違い、Web API のルート定義にはAction Methodの指定がない。
Web API を使用した場合、リクエストの HTTP メソッドに応じて、
以下のようにControllerのAction Methodが自動的に呼び出される。
| 項番 | HTTP メソッド | 呼び出されるメソッド |
| 1 | GET | "Get" で始まる名前のメソッド |
| 2 | POST | "Post" で始まる名前のメソッド |
| 3 | PUT | "Put" で始まる名前のメソッド |
| 4 | DELETE | "Delete" で始まる名前のメソッド |
Web API を利用した場合のコントローラの例を以下に示す。同じコントローラの中で GET に対応したメソッドを複数定義したい場合などは、以下のようにオーバーロードで対応できる。
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
public string Get(int id)
{
return "value";
}
// POST api/values
public void Post([FromBody]string value)
{
}
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
}
Tags: :ASP.NET, :ASP.NET Web API