gpt4 book ai didi

asp.net-web-api - asp.net web api Controller ,返回类型实体或 HttpResponseMessage

转载 作者:行者123 更新时间:2023-12-04 02:02:28 27 4
gpt4 key购买 nike

我想知道在我的 ApiController 中使用 HttpResponseMessage 作为返回类型有什么好处?与直接返回类型化实体或集合进行比较。

我们试图决定一种做法,以使我们正在进行的项目保持一致。

最佳答案

返回 HttpResponseMessage当您尝试将 Controller 层用作 HTTP 协议(protocol)和内部 .Net 服务之间的转换时,这很有用。它允许直接控制 HTTP 有效负载和 header 。它可以轻松返回 202、204、304、303 响应。它使设置缓存 header 变得容易。您可以明确控制响应的媒体类型。

通过返回一个对象,您可以有效地将“什么都不做”层添加到您的架构中。考虑....

public Foo Get(int id) {
return _fooRepository.GetFoo(id)
}

这种方法的目的是什么?它增加了什么值(value)?至少在 MVC 领域, Controller 具有匹配模型和 View 的作用。

当您从 APIController 返回对象时,您必须使用一组特定于 Web API/MVC 并且在 HTTP 世界中没有相应概念的抽象来间接影响 HTTPResponseMessage。 Formatters、ActionFilters、ModelBinders、HttpResponseException 都是旨在让框架在幕后处理您的 HTTP 请求和响应消息的基础设施。

直接返回 HttpResponseMessage 要求您的 Controller 方法完成返回所需 HTTP 消息所需的工作。

我不相信它会给你的应用程序增加任何复杂性,它只是让正在发生的事情变得可见。

归结为您是否想将 Web API 用作“基于 HTTP 的对象远程处理”框架(在这种情况下,我也会看看 ServiceStack),或者您是否想利用 HTTP 作为应用程序协议(protocol)。

关于asp.net-web-api - asp.net web api Controller ,返回类型实体或 HttpResponseMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15910867/

27 4 0
文章推荐: programming-languages - 神秘的编程语言
文章推荐: jsf - 根据 的值有条件地渲染
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com