Web Api サーバー側サンプル(Asp.Net Core)

WEBシステムとの連携では、よくWEB-APIを使用しますが、そのWEB-APIのサーバー側処理のサンプルを作ってみました。動作環境としては、Azure Appサービスを使っています。(無料でいろいろできるので)

サンプルは、クライアントから、postリクエストを送信します。エンドポイント(url) = https://xxxxxxxx/api/linewebhook として作成しました。ClsPostDataクラスは、リクエストを受取る為の構造体です。

初めてWEB-APIを見る人は、良くわからないと思いますが、[HttpPost]に続く関数が、POSTリクエストの受信時に発生するイベントです。

Class名 = LineWebHookController の場合、エンドポイント(url)は、xxx/api/linewebhook となります。(そういう決まりになっている為)

※【注意】下記のサンプルでは、リクエスト元の認証の処理が書かれていません。実際に使用する際には、リクエストのヘッダー情報にシークレットKEYをセットして認証するなどの処理が必要です。

using Microsoft.AspNetCore.Mvc;
using System.Net.Mail; 
namespace WebApiPost01.Controllers 
{
	[Route("api/[controller]")] 
	[ApiController] 
	public class LineWebHookController : ControllerBase 
	{ 
		[HttpPost] 
		public IActionResult Post([FromBody] ClsPostData postData) 
		{ 
			// POSTリクエストデータ有無チェック 
			if (postData == null) 
			{ 
				return BadRequest("Invalid request data.");
			} 
			// メール送信 (POSTリクエストを受信した時に実行する処理)			
			Fn_SendMail(postData.Title, postData.Message); 
			// 戻り値(クライアント側に返す値) 
			return Ok(new { Message =
					$"受信: タイトル = {postData.Title}," + 
					$"内容 = {postData.Message}"
			}); 
		} 
	} // EOF POST

	// POSTリクエスト取得用クラス 
	public class ClsPostData 
	{ 
		public string Title { get; set; } 
		public string Message { get; set; } 
		// ... 他のフィールドも追加できます 
	} 
}

Asp.Net Coreには、クライアントからのPOSTリクエストをテストする、swaggerというツールが標準でついていますが、あえてPOSTMANでテストしました。
送信データは、通常JSON形式で渡す決まりになっています。このJSONデータをサーバー側のClsPostDataクラスで受け取ります。