Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

ASP.NET Core リクエストのURLパスから値を取得する方法

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. コントローラーの作成
  2. 動作確認

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}