ASP.NET Coreで学ぶAPIルーティングの仕組み完全ガイド!初心者でもわかるURLの流れ
生徒
「ASP.NET CoreでWeb APIを作るとき、URLと処理がどうやって結びついているのか分かりません…」
先生
「それは“ルーティング”という仕組みで決まっています。住所と行き先を結びつける役割ですね。」
生徒
「住所と行き先、ですか?」
先生
「はい。URLが住所、APIの処理が行き先です。では、基本から順番に見ていきましょう。」
1. ASP.NET CoreのAPIルーティングとは?
ASP.NET CoreのAPIルーティングとは、ブラウザやアプリから送られてきたURLを見て、「どの処理を実行するか」を決める仕組みです。プログラミング未経験の方は、郵便物の配達を想像すると分かりやすいです。住所(URL)が書かれた手紙が届くと、郵便局は正しい家(処理)に届けます。ASP.NET Coreでは、この振り分けをルーティングが担当します。
特にASP.NET Core Web APIでは、REST形式のAPI開発でルーティングが中心的な役割を持ちます。正しいルーティング設計を理解することは、API開発の第一歩です。
2. URLとHTTPメソッドの関係
APIルーティングでは、URLだけでなくHTTPメソッドも重要です。HTTPメソッドとは、「何をしたいか」を表す合図のようなものです。代表的なものに、GET(取得)、POST(追加)、PUT(更新)、DELETE(削除)があります。
同じURLでも、HTTPメソッドが違えば、別の処理になります。これは「同じ住所でも、目的が違うと対応が変わる」イメージです。ASP.NET CoreのWeb APIでは、この組み合わせで処理を分けます。
3. コントローラーとルーティングの基本構造
ASP.NET Core Web APIでは、コントローラーというクラスに処理を書きます。コントローラーは「受付窓口」のような存在で、ルーティングによって正しい窓口に案内されます。
[ApiController]
[Route("api/hello")]
public class HelloController : ControllerBase
{
[HttpGet]
public string GetMessage()
{
return "こんにちは、ASP.NET Core API!";
}
}
この例では、「api/hello」というURLにアクセスすると、このコントローラーの処理が呼ばれます。とてもシンプルですが、これがAPIルーティングの基本形です。
4. 属性ルーティングの仕組み
属性ルーティングとは、コードの上に目印(属性)を書いて、ルートを指定する方法です。初心者の方には、地図に直接「ここに行く」と書き込む感覚だと分かりやすいです。
[HttpGet("api/time")]
public string GetTime()
{
return DateTime.Now.ToString();
}
この場合、「api/time」というURLにGETでアクセスすると、現在の時刻が返ります。URLと処理の関係がコードを見ただけで分かるため、初心者にも扱いやすいのが特徴です。
5. パラメーター付きルーティング
APIでは、URLの一部に数字や文字を含めたいことがあります。これをパラメーターと呼びます。例えるなら、「〇番の部屋」と指定するようなものです。
[HttpGet("api/user/{id}")]
public string GetUser(int id)
{
return "ユーザーIDは " + id + " です";
}
「api/user/3」のようにアクセスすると、idに3が入ります。ASP.NET Coreのルーティングは、自動でURLの値を受け取ってくれるので、とても便利です。
6. REST APIとルーティングの考え方
REST APIでは、「URLは名詞、動作はHTTPメソッド」で表すのが基本です。例えば、「ユーザー一覧を取得する」「ユーザーを追加する」といった操作を、URLとメソッドの組み合わせで表現します。
ASP.NET CoreのAPIルーティングは、このRESTの考え方と非常に相性が良く、自然なURL設計が可能です。初心者のうちは、「URLは住所、HTTPメソッドは目的」と覚えておくと混乱しにくくなります。
7. ルーティングとProgram.csの関係
ASP.NET Coreでは、アプリ全体の設定をProgram.csで行います。ここでルーティング機能を有効にしています。難しく見えますが、「ルーティングを使いますよ」と宣言しているだけです。
var app = builder.Build();
app.MapControllers();
app.Run();
この設定があることで、コントローラーに書いたルーティングが正しく動きます。初心者の方は、「MapControllersがある=APIルーティングが使える」と覚えれば十分です。
8. 初心者がつまずきやすいポイント
ASP.NET CoreのAPIルーティングで多いミスは、「URLが合っていない」「HTTPメソッドが違う」ことです。ブラウザでアクセスしても動かない場合は、まずURLとメソッドを確認しましょう。
また、大文字と小文字の違い、スペルミスも原因になりやすいです。ルーティングは住所と同じで、少し違うだけでも別物になります。落ち着いて一つずつ確認することが大切です。