【问题标题】:Request.CreateResponse vs returning POCOs in ASP.NET Web APIRequest.CreateResponse 与在 ASP.NET Web API 中返回 POCO
【发布时间】:2013-09-05 02:06:35
【问题描述】:

我在网上看到很多使用Request.CreateResponse 生成响应的 ASP.NET Web API 示例。如果在 Visual Studio 中创建新的 Web API 项目,默认 API 控制器将返回 IEnumerable<string>string。用法上有什么区别?

【问题讨论】:

标签: asp.net-web-api


【解决方案1】:

返回 HttpResponseMessage 允许您直接控制返回的 HTTP 响应的所有不同方面。如果你返回一个 POCO,你必须希望框架能做你想做的事。也许会,也许不会。

【讨论】:

  • 好吧,这是有道理的。在这一点上是否有任何一种演变为首选?
  • @qntmfred 从第一天起我就更喜欢返回 HTTPResponseMessage。有些人更喜欢返回对象的想法。 Web API 旨在成为一个没有意见(HTTP 除外)的框架,允许您选择它的行为方式。
【解决方案2】:

Request.CreateResponse 可以生成其他 http 消息,例如404,500。 如果只是返回,http 消息将是200 OK

在我的代码中,如果需要授权,我会这样返回:

throw new HttpResponseException(HttpStatusCode.Unauthorized);

写这个,你不必更改返回值。

【讨论】:

    猜你喜欢
    • 2019-09-06
    • 2013-01-14
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2018-07-17
    • 2021-09-24
    相关资源
    最近更新 更多