Web API 2是为201响应返回空体的最佳方法

时间:2017-02-01 11:07:45

标签: c# rest asp.net-web-api2

在Web API 2 POST方法中,似乎最好的响应方式是使用CreatedAtRoute方法。但是在某些回复中,我希望回复的主体是空的。因此只回复201和一个位置标题。

我希望这可行:

[HttpPost]
[ResponseType(typeof(Product))]
public IHttpActionResult Post([FromBody] Product product)
{
    products.Add(product);
    return CreatedAtRoute<Product>("", new {id = product.Id}, null);
}

然而,在Postman中检查它,它实际上返回一个字符串&#34; null&#34;。是否有一种优雅的方式来做到这一点?

1 个答案:

答案 0 :(得分:-1)

您可以使用内置&#34;创建&#34;简单的方法,但你已经说过响应类型应该是&#34;产品&#34;。

Created("getPathHere", newProductObject);

否则,删除Product的响应类型,改为返回新的产品ID(以及此创建过程所处的任何状态,如果它不是瞬时的)。

Created(string.Format("/api/Products/{0}", productId), new { ProductId = productId, Status = "Awaiting Manufacture" });