パラメーターを受け取る シンプルな ASP.NET Core Web API アプリケーションを作成する - C#

ASP.NET Core Web API アプリケーションでパラメーターを受け取る、シンプルなWeb APIアプリケーションを作成する手順を紹介します。

概要

こちらの記事では、ASP.NET CoreでシンプルなWeb APIの実装を紹介しました。 この記事では、パラメーターを受け取るWebAPIのコードを紹介します。

プログラム例: URLパラメーターを利用する場合

プロジェクトの作成

ASP.NET Core アプリケーションを作成します。
今回は[最上位レベルのステートメントを使用しない]のチェックボックスにチェックをつけ、main関数を作成するコードでプロジェクトを作成します。

コード

以下のコードを記述します。
Promgram.cs
namespace SimpleParameteredWebAPI
{
  public class Program
  {
    public static void Main(string[] args)
    {
      var builder = WebApplication.CreateBuilder(args);
      var app = builder.Build();

      app.MapGet("/", (int a, int b) =>
      {
        MyResult m = new MyResult();
        m.result = a + b;
        return m;
      });

      app.Run();
    }
  }
}
MyResult.cs
namespace SimpleParameteredWebAPI
{
  public class MyResult
  {
    public int result { get; set; }
  }
}

解説

MapGetメソッドでAPIのルーティング エンドポイントの定義と実装をします。第二引数のデリゲートにパラメーターを受け取るメソッドを与えることで、 メソッドの引数名と一致したURLパラメーターを受け取れます。
  app.MapGet("/", (int a, int b) =>

実装部分は以下のコードです。MyResultクラスのオブジェクトを作成し、2つのパラメーターの合計をresultプロパティに代入し、 オブジェクトを戻ちりとして返します。
  {
    MyResult m = new MyResult();
    m.result = a + b;
    return m;
  });

実行結果

上記のプロジェクトを実行します。
Webブラウザが起動してアプリケーションルートのページを表示しますが、パラメーターがないため、下図のエラーページが表示されます。


(アプリケーションルートURL)/?a=2&b=3 のURLでアクセスします。下図のページが表示されます。 JSONのレスポンスが表示されました。"result" の値に入力したパラメータの合計値の"5"が設定されています。


(アプリケーションルートURL)/?a=135&b=28 のURLでアクセスします。入力したパラメータの合計値の"163"がresultプロパティの値に設定されています。

プログラム例: URLのルートパラメーターを利用する場合

プロジェクトの作成

ASP.NET Core アプリケーションを作成します。
今回は[最上位レベルのステートメントを使用しない]のチェックボックスにチェックをつけ、main関数を作成するコードでプロジェクトを作成します。

コード

以下のコードを記述します。
Promgram.cs
namespace SimpleParameteredWebAPI
{
  public class Program
  {
    public static void Main(string[] args)
    {
      var builder = WebApplication.CreateBuilder(args);
      var app = builder.Build();

      app.MapGet("/{value_a}/{value_b}", (int value_a, int value_b) =>
      {
        MyResult m = new MyResult();
        m.result = value_a + value_b;
        return m;
      });


      app.Run();
    }
  }
}
MyResult.cs
namespace SimpleParameteredWebAPI
{
  public class MyResult
  {
    public int result { get; set; }
  }
}

解説

先に紹介した、URLパラメーターで受け取る場合のコードとほぼ同じです。 MapGetメソッドでAPIのルーティング エンドポイントの定義と実装をする部分でルートパラメーターの記述が追加されています。 URLのプレースホルダ部分に入力された値が、対応するデリゲートのメソッドの引数名と一致した変数に代入されます。
  app.MapGet("/{value_a}/{value_b}", (int value_a, int value_b) =>

入力パラメーターの合計値をMyResultオブジェクトのresultプロパティに代入して返す処理は先の例のコードと同じです。
  {
    MyResult m = new MyResult();
    m.result = value_a + value_b;
    return m;
  });

実行結果

プロジェクトを実行します。
Webブラウザが起動してアプリケーションルートのページを表示しますが、 パラメーターがないため、下図のページが見つからない旨のエラーページが表示されます。


(アプリケーションルートURL)/3/6 のURLでアクセスします。下図のページが表示されます。 JSONのレスポンスが表示されました。"result" の値に入力したパラメータの合計値の"9"が設定されています。


(アプリケーションルートURL)/2845/1221 のURLでアクセスします。入力したパラメータの合計値の"4066"がresultプロパティの値に設定されています。


パラメーターを受け取るWeb APIの実装ができました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2022-04-07
iPentec all rights reserverd.