gpt4 book ai didi

c# - ASP.NET Web API 控制成功代码(200 与 201)

转载 作者:太空狗 更新时间:2023-10-29 23:23:14 26 4
gpt4 key购买 nike

有没有办法为 Web API Controller 中的方法指定成功返回码?

我的初始 Controller 结构如下

public HttpResponseMessage PostProduct(string id, Product product)
{
var product= service.CreateProduct(product);
return Request.CreateResponse(HttpStatusCode.Created, product);
}

但是,当您生成 Web API 帮助页面时,上述方法有一个缺点。 Web API 帮助页面 API 无法自动解码强类型产品是响应,因此无法在其文档中生成示例响应对象。

所以我采用以下方法,但这里的成功代码是 OK (200) 而不是 Created (201)。无论如何,我可以使用一些属性样式语法来控制方法的成功代码吗?另外,我还想将 Location header 设置为所创建资源可用的 URL - 同样,当我处理 HttpResponseMesage 时,这很容易做到。

public Product PostProduct(string id, Product product)
{
var product= service.CreateProduct(product);
return product;
}

最佳答案

关于您的以下观察:

但是,当您生成 Web API 帮助页面时,上述方法有一个缺点。 Web API 帮助页面 API 无法自动解码强类型产品是响应,因此无法在其文档中生成示例响应对象。

您可以查看随 HelpPage 包一起安装的 HelpPageConfig.cs 文件。它有一个完全适用于像您这样的场景的示例,您可以在其中设置响应的实际类型。

在 Web API 的最新版本(5.0 - 目前为 RC)中,我们引入了一个名为 ResponseType 的属性,您可以使用它来用实际类型装饰操作。您可以将此属性用于您的场景。

关于c# - ASP.NET Web API 控制成功代码(200 与 201),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19042737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com