我有以下资源可用于返回特定的公司信息:
[HttpGet]
[Route("{companyId:Guid}")]
public IHttpActionResult Get(Guid companyId)
{
var company = CompanyRepository.Find(companyId);
if (company == null)
{
return NotFound();
}
else
{
var responseModel = new CompanyResponseModel()
{
CompanyId = company.Id,
Name = company.Name
};
return Ok(responseModel);
}
}
为什么我们不能在
NotFound()
调用中包含内容?例如,我想在错误响应模型中包含一条消息“公司ID不存在”。
这是否可能违反RESTful设计?
最佳答案
根据RFC2616 Section 10,404不会返回有关资源本身的任何信息。
但是,如果您想使用404,则可以改用以下代码:
return Content(HttpStatusCode.NotFound, "Your Content/Message");