在返回HTTP status codes
和JSON
结果的Web API中使用的最佳选项是什么?
我一直使用IActionResult
,但它始终是带有Web API的Web应用程序。这次它只是 Web API 。
我有以下简单的方法给出了一个错误:
无法隐式转换类型Microsoft.AspNetCore.Mvc.OkObjectResult to System.Threading.Tasks.Task Microsoft.AspNetCore.Mvc.IActionResult
[HttpGet]
public Task<IActionResult> Get()
{
return Ok();
}
答案 0 :(得分:10)
返回最符合请求需求的对象。至于动作的方法定义,用IActionResult
定义它,以允许使用抽象的灵活性与紧密耦合的具体结果相对应。
[HttpGet]
public IActionResult Get() {
return Ok();
}
上述操作在调用时将返回200 OK响应。
[HttpGet]
public IActionResult Get() {
var model = SomeMethod();
return Ok(model);
}
以上内容将返回200 OK响应内容。区别在于它允许内容协商,因为它没有特别限制为JSON。
[HttpGet]
public IActionResult Get() {
var model = SomeMethod();
return Json(model);
}
以上只会返回Json内容类型。
关于这个主题的非常好的文章