LoginSignup
19
28

More than 5 years have passed since last update.

ASP.NETでWebAPIを作成した際のメモ書き

Last updated at Posted at 2016-07-08

Visual Studioを使ってASP.NET WebAPI2を作成した際のメモ書き。

ASP.NET

「ASP.NET」とは、「Webフォーム」、「Webページ」、「シングルページアプリ」、「MVC」といった"サイト"を作成するフレームワークや、「WebAPI」や「SignalR」(WebSocketによる独自の通信方式)といった"サービス"を作成するフレームワークを提供してくれるものである。

WebAPIとは

「Web API」とは、ブラウザやデスクトップ・アプリケーションから、タブレットや携帯電話などのモバイル・デバイスまで、さまざまなクライアントにHTTPサービスを提供するためのフレームワークである。
Web APIの最大の特徴は、RESTfulなWebサービスを構築できる点にある。RESTfulなWebサービスとは、REST(Representational State Transfer)という原則に基づいたWebサービスのことで、以下のような特徴をもつ。

  • リソースの場所はURLで表す
  • リソースに対する操作はHTTPメソッドで表す
  • リソースに対する操作の結果はHTTPステータスコードで表す

RESTfulなWebサービスが使用するデータ形式に特に指定はないが、JSON形式のデータを返すのが一般的である。

ASP.NETでのWebAPIの実装方法

実装方法は、http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api にとても明快に説明されている。当初は実装方法を説明しようと思っていたが、ただの上記サイトの和訳になりそうであったので、ここでは説明を省略する(汗)。

また、http://www.asp.net/web-api/overview/advanced/sending-html-form-data-part-1 を参考に、HTMLのformから値を取得するPOSTメソッドを実装してみたので、メモしておく。
formから値を受けとるようなPOSTメソッドを作成するには、下記のような適当なModelを用意し、Modelで用意した変数名とformで宣言するnameを揃えておく。

public enum TimeZone { Morning, Afternoon, Evening };

public class Greeting
{
    public TimeZone TimeZone { get; set; }
}

そして、任意のControllerでPOSTメソッドを作成し、引数には先ほどのModelを設定しておく。

public class GreetingController : ApiController
{
    // POST: api/greeting
    [HttpPost]
    public IHttpActionResult Post([FromBody]Greeting greeting)
    {
    }
}

このようにして、formから受け取った値をPOSTメソッドに受け渡すことができる。
GET、PUT、DELETEと明示的に区別するには、POSTメソッドに属性[HttpPost]を付加すればよい。また、POSTメソッドの引数に属性[FromBody]を付加していないと、formから値を取得できないので注意すること。

19
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
28