Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

RESTful な HTTP サービスを構築するためのフレームワーク。

Routing

MapHttpRoute?

基本

既定では、以下のように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 メソッド呼び出されるメソッド
GET"Get" で始まる名前のメソッド
POST"Post" で始まる名前のメソッド
PUT"Put" で始まる名前のメソッド
DELETE"Delete" で始まる名前のメソッド

応用

以下の様な定義を行えば、

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }

デフォルトのHTTP Methodに対応したActionMethod?ではなく、
独自のActionMethod?名を明示することができる。

MapHttpAttributeRoutes?

参考

ApiController?

基本

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)
    {
    }
}

参考

CORS

CORS (Cross-Origin Resource Sharing)に対応する場合にEnableCors?属性を指定する。

参考

リクエスト送信方法

HttpClientの類の使い方」を参考にできる。

参考

セルフホスト

ASP.NET Web API2からOWIN対応され、セルフホストが可能になっている。

参考


Tags: :.NET開発, :OWIN, :ASP.NET, :ASP.NET Web API


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS