1. はじめに
- OpenAPIver3に対応したAPIを開発したい
- C# ASP.NETCore WebAPIを使用したい
- Swaggerで動作検証をしたい
2. 開発環境
- Visual Studio 2022
- .NET6 (ASP.NET Core)
- Windows11
3. Visual Studioで新規プロジェクトを作成する
-
WebAPIを呼び出すと本の情報を5件分取得できる簡単なサンプルを作成する
-
「ASP.NET Core WebAPI」 を選択する
-
ASP.NETサービスがインストールされていない場合は別途Visual Struio インストーラーからインストールする
4. コントローラーを追加する
BooksController.cs
using Microsoft.AspNetCore.Mvc;
namespace WebAPI.Controllers
{
[Produces("application/json")]
[Route("api/Books")]
public class BooksController : ControllerBase
{
private List<Models.Book> _lst;
public BooksController() {
_lst = new List<Models.Book>();
_lst.Add(new Models.Book { id = 1, title = "title1", price = 100, page = 10 });
_lst.Add(new Models.Book { id = 2, title = "title2", price = 200, page = 20 });
_lst.Add(new Models.Book { id = 3, title = "title3", price = 300, page = 30 });
_lst.Add(new Models.Book { id = 4, title = "title4", price = 400, page = 40 });
_lst.Add(new Models.Book { id = 5, title = "title5", price = 500, page = 50 });
}
// GET: api/Books
[HttpGet]
public IEnumerable<Models.Book> Get()
{
return _lst;
}
// GET: api/Books/5
[HttpGet("{id}", Name = "Get")]
public Models.Book Get(int id)
{
return _lst.FirstOrDefault(x =>x.id == id);
}
// POST: api/Books
[HttpPost]
public string Post([FromBody] Models.Book value)
{
return string.Format("post title:{0}", value.title);
}
// Put: api/Books/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
// do nothing
}
// DELETE: api/ApiWithActions/5
[HttpDelete("{id}")]
public void Delete(int id)
{
// do nothing
}
}
}
5. モデルを追加する
- 新しい項目を追加で、「クラス」 を追加する
Book.cs
namespace Models
{
public class Book
{
public int id { get; set; }
public string title { get; set; }
public int price { get; set; }
public int page { get; set; }
}
}
6. サンプルのWebAPIを起動する
7. ソースコード
8. 参考文献