Open棟梁Project - マイクロソフト系技術情報 Wiki
RESTful な HTTP サービスを構築するためのフレームワーク。
既定では、以下のようにRoutingが定義されている。
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 のRoute定義には、
(既定では)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