在ASP.NET Core Web API中,我们可以使用不同的内容类型来解决返回值的问题。 对于标准的 RESTful API,我们想要确保每个响应都具有标准的状态码,以帮助客户端(通常是JavaScript)识别是否成功处理了该请求。
但是,在某些情况下,仅返回状态码可能不足以说明问题,因此我们可能需要返回自定义对象。 以下是如何在AspNetCore Web API中实现此目标的示例代码:
[HttpGet("{id}")]
public IActionResult Get(int id)
{
var result = _service.Get(id);
if (result == null)
{
return NotFound(new { message = "Object not found" });
}
else
{
return Ok(result);
}
}
在上面的示例中,返回了一个自定义对象,其中包含一个“message”属性。 如果查询未找到,则会返回HTTP 404状态码和自定义消息。 如果找到该对象,则会返回HTTP 200状态码和对象本身。
注意使用IActionResult而不是具体的返回类型,这是建议的做法,这样我们可以在同一操作中返回多个不同的响应类型。
此外,还可以使用其他响应类型,例如BadRequest(400)或InternalServerError(500)等。