C#でREST APIを作る方法|ASP.NET Core実践チュートリアル

先生

C#とASP.NET CoreでREST APIをサクッと構築!初心者でも安心のステップバイステップ解説。

C# ASP.NET CoreでREST APIを構築する:はじめに

C#とASP.NET Coreは、堅牢でスケーラブルなREST APIを構築するための強力な組み合わせです。この記事では、ASP.NET Coreを使用して基本的なREST APIを作成する方法をステップごとに解説します。API開発の経験がない方でも、このチュートリアルを通じてC#でのAPI開発の基礎を習得できます。

本チュートリアルでは、Visual StudioまたはVisual Studio Codeを使用します。これらのIDEは、ASP.NET Coreプロジェクトの作成とデバッグを容易にします。事前に.NET SDKがインストールされていることを確認してください。

ASP.NET Coreプロジェクトの作成

まず、新しいASP.NET Core Web APIプロジェクトを作成します。Visual Studioを使用する場合は、「新しいプロジェクトの作成」を選択し、「ASP.NET Core Web API」テンプレートを選択します。Visual Studio Codeを使用する場合は、ターミナルで以下のコマンドを実行します。

dotnet new webapi -n MyWebApi

これにより、「MyWebApi」という名前の新しいWeb APIプロジェクトが作成されます。プロジェクトのディレクトリに移動し、Visual Studio Codeで開きます。

cd MyWebApi
code .

モデルの定義

APIで扱うデータを表すモデルを定義します。例として、TodoItemというモデルを作成します。

プロジェクトに新しいクラスファイルTodoItem.csを追加し、以下のコードを記述します。

public class TodoItem
{
    public long Id { get; set; }
    public string Name { get; set; }
    public bool IsComplete { get; set; }
}

コントローラーの作成

APIのエンドポイントを処理するコントローラーを作成します。ControllersディレクトリにTodoItemsController.csという名前の新しいファイルを作成し、以下のコードを追加します。

using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
[ApiController]
[Route("api/[controller]")]
public class TodoItemsController : ControllerBase
{
    private static List<TodoItem> _todoItems = new List<TodoItem>();
    [HttpGet]
    public ActionResult<IEnumerable<TodoItem>> GetTodoItems()
    {
        return _todoItems;
    }
    [HttpPost]
    public ActionResult<TodoItem> CreateTodoItem(TodoItem item)
    {
        item.Id = _todoItems.Count + 1;
        _todoItems.Add(item);
        return CreatedAtAction(nameof(GetTodoItem), new { id = item.Id }, item);
    }
    [HttpGet("{id}")]
    public ActionResult<TodoItem> GetTodoItem(long id)
    {
        var item = _todoItems.FirstOrDefault(x => x.Id == id);
        if (item == null)
        {
            return NotFound();
        }
        return item;
    }
    [HttpPut("{id}")]
    public IActionResult UpdateTodoItem(long id, TodoItem item)
    {
        if (id != item.Id)
        {
            return BadRequest();
        }
        var existingItem = _todoItems.FirstOrDefault(x => x.Id == id);
        if (existingItem == null)
        {
            return NotFound();
        }
        existingItem.Name = item.Name;
        existingItem.IsComplete = item.IsComplete;
        return NoContent();
    }
    [HttpDelete("{id}")]
    public IActionResult DeleteTodoItem(long id)
    {
        var item = _todoItems.FirstOrDefault(x => x.Id == id);
        if (item == null)
        {
            return NotFound();
        }
        _todoItems.Remove(item);
        return NoContent();
    }
}

APIの実行とテスト

プロジェクトを実行してAPIをテストします。Visual StudioまたはVisual Studio Codeのデバッグ機能を使用するか、ターミナルで以下のコマンドを実行します。

dotnet run

APIが起動したら、ブラウザまたはPostmanなどのツールを使用してエンドポイントにアクセスできます。例えば、GET /api/TodoItemsにアクセスすると、TodoItemのリストを取得できます。

PostmanなどのAPIクライアントを使用して、POST, PUT, DELETEリクエストを送信し、APIが正しく動作することを確認してください。

参考リンク

まとめ

このチュートリアルでは、C#とASP.NET Coreを使用して基本的なREST APIを構築する方法を学びました。モデルの定義、コントローラーの作成、APIの実行とテストという主要なステップを理解することで、より複雑なAPIを構築するための基盤を築くことができます。さらに学習を進めて、認証、データ永続化、エラー処理などの高度な機能を取り入れてみましょう。