ASP.NET 的 web api - 如何构建对象流

Posted

技术标签:

【中文标题】ASP.NET 的 web api - 如何构建对象流【英文标题】:web api for ASP.NET - how to build a stream of objects 【发布时间】:2013-05-07 21:27:38 【问题描述】:

这将是一个主观问题,但仍想在这里提出。

我正计划建立一个类似 fb 的流墙,其中将包含 text post、*嵌入视频*、图片投票等对象> 等等。因为我对 ASP.NET 网络表单只有一点了解,所以我打算使用它。 我的问题是哪种技术/方法最适合设计流?

在 ASP.NET webform 上选择 Web API 好还是我应该只依赖 ASP.NET MVC? 如何在同一个列表(流)中显示不同的对象类型?我认为 datalist、repeater、gridview 等是不可能的。

也许,这似乎是一个主观问题,但可能对建筑的感知有价值。

【问题讨论】:

是的,这是任意的。但我相信实际上有一个“正确答案”。根据您的需求(流媒体列表),我相信您最好使用 asp.net MVChtml 5HTML 5 不在您的列表中,因此需要特别注意。 Facebook 的新异步外观主要是SignalRSignalR 是一个用于高效传输异步数据的套接字工具 (en.wikipedia.org/wiki/SignalR)。 MVC 比带有或不带有 Web API(我说带有)的 Web 表单 b/c 更可取,您将获得一个高度可扩展的环境,该环境已经可以使用 JSON 动作 mthds 将数据流发送到客户端。 【参考方案1】:

对我来说,因为 Web API 是建立在一些 ASP.NET MVC 组件之上的。它只是不同的 Http 包。所以我们只需要知道如何在 ASP.NET Web API 中处理二进制流。我已经在互联网上搜索并发现了一些有用的东西,例如

Good discussion about video streaming Async action on ASP.NET Web API Best practices for streaming the large files How to processing video streaming

如果您想做类似的事情,所有这些都是很好的参考。

【讨论】:

感谢您的回答。但我关心的是在单个流中显示不同的对象。可能是嵌入式视频、网络链接、简单文本、*上传的视频流*(您已在回答中解释)、投票和图片。它们都是不同的对象,我不确定如何将这些所有对象集成到一个流中。 哦,我现在知道你的问题了。您能否考虑自定义您的 Http 处理程序。所以我们可以将多种类型的流组合成一个流。让我研究一下,然后再回复你。 您有机会找到方法吗?【参考方案2】:

WebAPI 不是前端/视图问题。它是关于通过 http 访问和使用数据的。所以它既不是 WebAPI 也不是 ASP.NET MVC 案例。这是关于在适当的地方使用每个。话虽如此,对于您的流场景,可以使用 ASP.NET MVC 构建网站。您的流的数据可以通过 WebAPI 提供。您可以通过 AJAX 从 MVC 站点调用 WebAPI。

【讨论】:

同时我做了一些基本的工作,我能够让它同时适用于 ASP.NET MVC 和 webform,但你的回答确实让我松了一口气。 :) 但我仍然不确定我必须选择哪种方法来显示多种对象类型,现在我只能显示一种对象(即通过生成列表或表格) @LordHits WebAPI 是一个 HTTP 框架。它在交付前端内容方面与在后端一样有能力。事实上,与作为通用数据 API 相比,HTTP 本身更适合提供大粒度、特定于用例的表示。【参考方案3】:

WebAPI 是一种 HTTP 服务 专为广泛覆盖而设计 使用 HTTP 作为应用程序协议,而不是传输协议。

【讨论】:

以上是关于ASP.NET 的 web api - 如何构建对象流的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core Web API

无法使用 HttpClient 对 ASP.NET Web Api 服务进行身份验证

ASP.NET Web API 如何对用户进行身份验证

在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务

如何在 Web ASP.NET (.NET Framework) 中创建启动文件?

带有 EF Core 更新实体的 ASP.Net 核心 Web Api 如何