哪个ResponseType应该用于PUT或POST请求的IHttpActionResult
本文关键字:POST 请求 IHttpActionResult PUT ResponseType 用于 哪个 | 更新日期: 2023-09-27 17:54:07
我已经开始用[ResponseType]
属性装饰我的IHttpActionResult
方法,目的是让消费者更容易知道如何处理响应。
这对于GET来说是有意义的,因为我可能需要对返回的数据做一些事情。
但是[ResponseType]
是否对PUT或POST请求有任何意义,这些请求不返回任何数据,只是成功代码?
。
[HttpPut]
[Route("Contact/{contactId:int}/name", Name = "UpdateContactName")]
[ResponseType(typeof(?????))] // <- what should I put here? do I even need it at all?
public IHttpActionResult UpdateName(int contactId, [FromBody] string name)
{
//...
return StatusCode(HttpStatusCode.Accepted);
}
事实证明,[ResponseType]
确实对不返回数据的控制器方法有意义。
您可以使用void
类型来确保WebApi帮助文件不会为这些方法显示"sample not available"消息。
。
[ResponseType(typeof(void))]
我可能错过了一些东西,但我个人认为下面的方法更优雅,更有用
[HttpPut]
public IHttpActionResult Approve(long id)
{
if (!ModelState.IsValid)
{
return BadRequest();
}
// .....
// .....
bool success = false;// this is just a flag to indicate operation progress
// Do Update...
return Ok(sucess);
}
而不是有一个不返回任何数据的控制器,我会返回'类似' Ok(true)取决于操作的成功或失败。