ASP.NET Core WEB API プログラミング

【 ASP.NET WebAPI 】BodyパラメータのJSONを受け取る方法 FromBody

FromBody 属性を使用して、

ASP.NET Core(.NET 6)のWebAPIBodyパラメータのJSONを受け取る方法を解説します。

ASP.NET Core FromBody JSON

FromBody 属性

POSTやGETで呼び出されるメソッドの引数に [FromBody] という属性パラメータを指定することでBodyに格納された複数の値やJSONを簡単に取得することができます。

逆にURLパラメータの値などの単一の値を取得したい場合は [FromQuery] という属性パラメータの方が適しています。

[FromQuery] についての解説はこちらになりますので、そちらも参考にしてください。

例えば、以下のようなPOSTリクエストで送信されてくるJSON値があるとします。

{
	"LoginName": "test",
	"Password": "1234",
	"TelNo": "090-****-****"
}

上記のJSONをWEBAPI側の対応するPOSTアクションで受け取りたい場合、

まずは、そのJSONデータを格納するためのクラスを用意する必要があります。

その時作成するクラスは受け取るJSONと同じ構造にします。

public class Root
{
     public string LoginName { get; set; }
     public string Password { get; set; }
     public string TelNo { get; set; }
}

その次に、用意したクラスを実際のJSONを受け取るPOSTアクションの引数に設定します。

// POST: users/login
[HttpPost("login")]
public async Task<ActionResult<User>> LoginUser([FromBody] User user)
{
  string name = user.LoginName;
    string pass = user.Password;
    string telno = user.TelNo;

  //処理を書く
}

これでPOSTリクエスト時、Bodyに格納されているJSONデータをPOSTアクション側で正常に受け取ることができます。

おすすめ記事はコチラ

ASP.NET Web Forms 1

この記事ではマイクロソフト社が開発・提供しているWebアプリケーション開発用フレームワーク「ASP.NET」の「Web Forms」を「MVC」と比較しながらメリットやデメリット等を含めて解説していき ...

C#VB 2

今回はC#(ver.7.0以降)、VB(ver. 15以降)でforeachループ内で繰り返し回数を参照する方法について解説していきます。 従来の記述方法とよりスマートに記述する方法の2通りを以下にな ...

3

この記事ではSQL Serverで使用できる「STUFF」という便利な関数の使い方について、解説していきます! 他にも便利な関数があれば、別記事にて使用方法を解説していきたいと思います! STUFF ...

4

今回はSQL ServerでデータをXML形式で取得する方法について書いていきます。 FOR XML PATH SQL Serverには「FOR XML PATH」という関数があって、SQL分の末尾に ...

-ASP.NET Core, WEB API, プログラミング
-, ,