【发布时间】:2011-11-23 00:00:24
【问题描述】:
我正在创建一个 Web 服务,它将返回由其他用户“排队”的 XPS 文档。我想尽量减少请求的数量,因此我正在考虑将生成的排队文件合并到一个响应中:
"Files":
[
{"Id": 1, "ContentType": "application/vnd.ms-xpsdocument", "Data": "base64-encoded data of file here" },
{"Id": 2, "ContentType": "application/vnd.ms-xpsdocument", "Data": "another files base64 data"}
]
这是一个糟糕的主意吗?有什么我应该担心的吗?因为多台服务器会轮询这个 API,所以我真的很想尽量减少发送的请求数。如果有更好的方法可以做到这一点,我真的很感激任何建议。
FWIW,我计划用来对文件进行 base64 编码/解码的方法取自 this question。
【问题讨论】:
-
我一般不认为每个文件一个请求太多。您正在做的事情可能会奏效,但权衡起来似乎有点过于复杂。
-
@AndrewBarber - 我同意 KISS 的想法。但是,如果有 10 台服务器每隔几分钟使用 20 个文件访问此 API,我觉得需要减少请求的数量。此外,这意味着我必须在公共 API 中公开另一种方法。
-
我不确定你想要达到什么目的。如果是性能或吞吐量,Base64 将数据大小增加一半。如果它将文件数据嵌入到任意结构中,那么按原样传递它们的便利性可能会超过性能损失。
-
@ivan_pozdeev - 是的,我同意,这是这种方法的缺点:(。我只是想了解如何明智地做到这一点。
-
为了增加您的复杂性,您的文件大小是多少?根据这一点,可能有必要限制文件的数量(可能基于它们的大小),因此您的整体响应大小不会很大
标签: .net json web-services