ASP.NET Web APIでHello World


ゴール

GET /api/HelloWorld/で文字列Hello Worldが返ってくるAPIを作ります。

$ curl 'http://localhost:50781/api/HelloWorld'
"Hello world"

環境

Visual Studio Community Edition 2015 Update2

手順

プロジェクト作成

  1. Visual Studioを起動
  2. 新しいプロジェクトを作成
  3. インストール済みテンプレートから Visual C# > Web を選択
  4. ASP.NET Web アプリケーションテンプレートを選択
  5. 名前(N):HelloWorldAPIに変更
  6. OKをクリック

  1. Emptyテンプレートを選択
  2. Web APIにチェック
  3. OKをクリック

コントローラー作成

エンドポイント/api/HelloWorldに対応するコントローラーを作ります。

  1. ソリューションエクスプローラーのControllersフォルダを右クリック
  2. 追加(D) > コントローラー(T) を選択

  1. Web API2 コントローラー - 空を選択
  2. 追加をクリック

  1. コントローラー名:HelloWorldControllerに変更
  2. 追加をクリック

Getメソッドを追加

生成されたHelloWorldControllerクラスにGetメソッドを追加します。

HelloWorldController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace HelloWorldAPI.Controllers
{
    public class HelloWorldController : ApiController
    {
        public string Get()
        {
            return "Hello World";
        }
    }
}

リクエストは、HTTPメソッド名で始まるメソッドにマッピングされます。

動作確認

デバッグ実行します。

403エラーが表示されます。気にせずURLを/api/HelloWorldに変更します。

無事HelloWorldが表示されました。

余談

/api/helloworldでも表示されます。
デフォルトではURLの大文字小文字は区別しないようです。

参考