ASP.NET Core の APIコントローラーで、リクエストの URLパスから値を取得する方法を書いていきます。
例えば、以下のリクエストの場合に、
http://localhost:xxxx/req/path/6
「6」を取得して使う方法になります。
プロジェクトの概要
動作確認のために作成したプロジェクトは以下の通りです。
- 言語:C#
- テンプレート:ASP.NET Core Web API
- フレームワーク:.NET 6.0
- HTTPS 用の構成:無効
- コントローラーを使用する:有効
- OpenAPI サポートを有効にする:無効
- プロジェクト名:WebApiSample
プロジェクトの作成方法は、こちら に記載しています。
目次
- コントローラーの作成
- 動作確認
1. コントローラーの作成
プロジェクトの Controllersフォルダの下に、以下の APIコントローラーを追加します。
Controllers.ReqPathController.cs
using Microsoft.AspNetCore.Mvc; namespace WebApiSample.Controllers { [ApiController] public class ReqPathController : ControllerBase { [HttpGet("/req/path/{id}")] public Dictionary<string, long> Get(long id) { return new Dictionary<string, long>() { { "id", id } }; } } }
属性「HttpGet」にプレースホルダを指定して、その内容と同じ名前の引数を定義しています。これで、URLの末尾が引数として渡ってきます。
※ コントローラーの追加方法は、こちら に記載しています。
2. 動作確認
デバッグ実行して、以下の URL(ポート番号は可変)にアクセスします。
http://localhost:xxxx/req/path/6
以下の JSONがレスポンスとして返却されます。
{"id":6}