パラメーターを受け取る シンプルな ASP.NET Core Web API アプリケーションを作成する - C#
ASP.NET Core Web API アプリケーションでパラメーターを受け取る、シンプルなWeb APIアプリケーションを作成する手順を紹介します。
概要
こちらの記事では、ASP.NET CoreでシンプルなWeb APIの実装を紹介しました。
この記事では、パラメーターを受け取るWebAPIのコードを紹介します。
プログラム例: URLパラメーターを利用する場合
プロジェクトの作成
ASP.NET Core アプリケーションを作成します。
今回は[最上位レベルのステートメントを使用しない]のチェックボックスにチェックをつけ、main関数を作成するコードでプロジェクトを作成します。
コード
以下のコードを記述します。
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();
}
}
}
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関数を作成するコードでプロジェクトを作成します。
コード
以下のコードを記述します。
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();
}
}
}
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を愛用