从RESTful API加载许多base64映像

时间:2016-08-30 06:56:05

标签: c# json asp.net-mvc rest encoding

背景资料:

我有一张人桌,其中包含该人的形象。图像以base64编码(限制为128 x 128)。因此,通过API,您可以拨打电话,返回所有人员数据。可能有10条记录或1000条记录(分页是一个选项)。对于响应中的每个base64字符串,大小大约为40k字节。因此,如果你的加载,让我们说100条记录,数据包大小如果非常大,考虑到每个人记录都有额外的数据返回。

问题:

在json响应中返回base64编码图像是否被视为最佳做法,或者应该使用URL链接?

如果这是重新发布的道歉,但我确实查看了类似问题部分,但无法找到能解答我问题的任何内容。

非常感谢提前!

1 个答案:

答案 0 :(得分:4)

最好将人员的图像作为单独的资源处理,并为其提供“自己的”URL。在人的JSON数据中,此URL作为属性嵌入,如

{
   id: "personId",
   imageUri: "http://..../profile.jpg"
}

<强>赞成

  • 人员数据查询结果的JSON更加紧凑
  • 二进制图像数据可以在没有Base64开销的情况下传输

  • 浏览器可以缓存图像

<强>缺点

  • 要获取完整的人员数据,需要两个请求。一个用于人的元数据,一个用于图像。