MEMO about WEB API

VisualStudio Expressの場合...

新しいプロジェクトを作成します。


「ASP.NET 空の Web アプリケーション」で十分です。


フォルダを2つ作成します。


Controllersフォルダ配下に、Web API コントローラークラスを追加します。


クラス名はxxxxControllerとします。xxxxがクライアントから指定するAPIの名前になります。ここではValuesControllerとしています。
クラスの作成時に、自動的にpackages.configが追加されて、プロジェクトフォルダにpackagesフォルダが作成されます。 packagesフォルダ内のdllへの参照設定も追加されます。
(TFSなどでソース管理する場合には、これら自動的に作成されるファイルが管理から漏れないように注意)


App_Startフォルダ内に、WebApiConfigクラスを追加します。





using System.Web.Http;

namespace xxxxxxxxxx
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration configuration)
        {
            configuration.Routes.MapHttpRoute(
                "DefaultApi",
                "api/{controller}/{id}",
                new { id = RouteParameter.Optional });
        }
    }
}


プロジェクトにGlobal.asaxを追加します。


Application_Startメソッドに、WebApiConfigクラスを実行する1文を記述します。


        protected void Application_Start(object sender, EventArgs e)
        {
            WebApiConfig.Register(GlobalConfiguration.Configuration);
        }


以上で、サーバ側の構築が終わりました。
プロジェクトを実行するとブラウザが起動しますが、WEBページが無い為、「HTTP エラー 403.14 - Forbidden」 などになります。それでも構いません。URLを次のように書き換えてみてください。
http://localhost:xxxxxx/api/Values/
Values.json というファイルを保存するか確認するメッセージが表示されるはずです。
プログラムのデバッグも試してみます。ValuesController.csのGetメソッドにブレークポイントを張ってみてください。




APIにパラメータを設定したい場合もあるかと思います。
http://localhost:xxxxxx/api/Values/5/