web-dev-qa-db-ja.com

ASP.NET CoreAPIでのIActionResultとObjectResultとJsonResultの比較

両方を返すWebAPIで使用するのに最適なオプションは何ですかHTTP status codesJSONの結果?

私はいつもIActionResultを使用していましたが、それは常にWebAPIを備えたWebアプリでした。今回はWeb APIのみです。

次の簡単な方法で、次のようなエラーが発生します。

タイプMicrosoft.AspNetCore.Mvc.OkObjectResultをSystem.Threading.Tasks.TaskMicrosoft.AspNetCore.Mvc.IActionResultに暗黙的に変換することはできません

[HttpGet]
public Task<IActionResult> Get()
{
   return Ok();
}
5
Sam

リクエストのニーズに最適なオブジェクトを返します。アクションのメソッド定義については、IActionResultで定義して、密結合のコンクリーションの代わりに抽象化を柔軟に使用できるようにします。

[HttpGet]
public IActionResult Get() {
   return Ok();
}

上記のアクションは、呼び出されたときに200OK応答を返します。

[HttpGet]
public IActionResult Get() {
   var model = SomeMethod();
   return Ok(model);
}

上記は、コンテンツを含む200OK応答を返します。違いは、JSONに特に制限されていないため、コンテンツネゴシエーションが可能になることです。

[HttpGet]
public IActionResult Get() {
   var model = SomeMethod();
   return Json(model);
}

上記はJsonコンテンツタイプのみを返します。

このテーマについて読むのに非常に良い記事

Asp.Netコアアクションの結果の説明

14
Nkosi