【ASP.NET Core Web】アクションで任意のステータスコードとJSONを返す

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【ASP.NET Core Web】アクションで任意のステータスコードとJSONを返す

2024-3-13 |

.NET 8のASP.NET Core Webのアクションで任意のステータスコードとJSONを返したい!

概要

今回の記事では、.NET 8のASP.NET Core Webのアクションで任意のステータスコードとJSONを返す手順を掲載する。

仕様書

環境

  • .NET 8.0

手順書

ASP.NET Core Webのアクションで任意のステータスコードとJSONを返す方法はいくつかあるんだけども、この記事では「JsonResult型にステータスコードを追加する方法」と「IActionResult型を使う方法」の2パターンを紹介する。

JsonResult型にステータスコードを追加する方法

namespace ReturnStatusCodeSample
{
    public class SampleController : Controller
    {
        public IActionResult Get()
        {
            return new JsonResult(
                new { message = "Bad Request" }
            ){
                StatusCode = 400
            };
        }
    }
}

newが入れ子になっててちょっとなんか…。

IActionResult型を使う方法

namespace ReturnStatusCodeSample
{
    public class SampleController : Controller
    {
        public IActionResult Get()
        {
            return StatusCode(
                200,
                new { message: "OK" }
        }
    }
}

戻り値のところはスッキリしてて良い感じ。IActionResult型で宣言してるがちょっと…。

まとめ(感想文)

後者の方法の方がコードがスマートな感じがする。が、JsonResult型を指定した方がアクションの定義がキレイな気もする。んがががが。