ASP.NET WebAPI

Visual Studioのプロジェクトの新規作成でつくられるプロジェクトの構成は、ASP.NET MVCと似ているけれど、ASP.NET WebAPIは、ASP.NET MVCとは独立したフレームワークとなっているので、ASP.NET MVCのプロジェクトに対して、ASP.NET WebAPIのコントローラーを追加することもできるけれど、新規にASP.NET WebAPIのプロジェクトを作成した方が、色々面倒が少ないかもしれない。

試しに、ASP.NETのプロジェクトを作成して、APIをたたいてみると、"Authorization has been denied for this request. "という返答が返ってきた。その理由は、下記のようにコントローラーの属性に[Authorize]が付与されているからで。開発初期に、とりあえずAPIを試してみたいのであれば、[Authorize]をコメントアウトすれば、認証なしでだれでもAPIをたたけるようになる。

    [Authorize]
    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) {
        }
    }

Visual Studioで、Controllersの右クリックメニューからWeb APIコントローラーを追加する場合、下記の5つの選択肢がある。

とりあえず、ODataは使わず、"Web API 2 Controller - Empty"を選択する。