从RESTful API加载许多base64图片

4

背景信息:

我有一个人员表,其中包含人员的图像等信息。图像以base64编码(限制为128 x 128)。因此,通过API,您可以调用返回所有人员数据的接口。可能有10条记录或1000条记录(分页是一种选择)。对于响应中的每个base64字符串,大小更多或少为40k字节。因此,如果您加载了100个记录,数据包的大小就相当大,考虑到每个人员记录还返回其他数据。

问题:

在json响应中返回经过base64编码的图像是否被视为最佳实践?还是应该使用URL链接?

如果这是一个重新发布的帖子,请原谅,但我已查看了“类似的问题”部分,但找不到任何回答我的问题的内容。

提前致谢!


最佳实践是在JSON响应中返回图像的URL链接,而不是Base64编码的图像。 - Divyang Desai
@Div 感谢您的回复。应该以这样的方式表达,以便可以给出差异(优缺点)。 - Richard Bailey
好的,这就是为什么我没有发布答案,不管怎样感谢建议。 - Divyang Desai
1个回答

6

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

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

优点

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

  • 浏览器可以缓存图像。

缺点

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接