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"を選択する。