ASP.NET Core Web APIでカスタムメッセージを作成するにはどうすればよいですか?例えば帰りたい
new HttpResponseMessage()
{
StatusCode=HttpStatusCode.OK,
Message="Congratulations !!"
};
new HttpResponseMessage()
{
StatusCode=HttpStatusCode.NotFound,
Message="Sorry !!"
};
この最も簡単な方法は、ベースのControllerクラスのヘルパーを使用することです。
_public ActionResult ExampleNotFound()
{
return NotFound("Sorry !!");
}
public ActionResult ExampleOk()
{
return Ok("Congratulations !!");
}
_
または、新しいContentResult
を返し、ステータスコードを設定することもできます。
_return new ContentResult
{
Content = "Congratulations !!",
ContentType = "text/plain",
StatusCode = 200
};
_
これら2つのメソッドは少し異なります。ContentResult
は常にContentType
の_text/plain
_を持ちます
Ok()
メソッドとNotFound()
メソッドはObjectResult
を返します。これは、フォーマッターを使用して、リクエストのAcceptヘッダーのコンテンツタイプに従って文字列をシリアル化します。
レガシーHttpResponseMessage
を返すには、.netコアでResponseMessageResult
に変換する必要があります。以下に例を示します。
public async Task<IActionResult> Get(Guid id)
{
var responseMessage = HttpContext.GetHttpRequestMessage().CreateResponse(HttpStatusCode.OK,
new YourObject()
{
Id = Id,
Name = Name
});
return new ResponseMessageResult(responseMessage);
}