【问题标题】:How to send image as a REST API response? What guidelines to follow? [closed]如何将图像作为 REST API 响应发送?要遵循哪些准则? [关闭]
【发布时间】:2021-11-15 02:13:38
【问题描述】:
我正在使用Node.js 和Express 制作应用程序。我可以使用multer 将文件保存到服务器,但是在发送响应时我有两个选择,
- 以 JSON 格式发送图片的 URI,让前端调用这个来显示图片。
- 使用某种形式的编码(如 Base64)作为 JSON 的一部分发送图像数据。
由于我是 Web 开发的新手,我对使用哪个选项感到困惑。有人说第一个选项需要两次 API 调用,所以会很慢。虽然我也听说第二个选项会占用更多的内存资源。
在选择时我还应该考虑哪些其他事项,还有其他向客户端发送图像的方式吗?
【问题讨论】:
标签:
node.js
json
rest
express
【解决方案1】:
选项 1
不那么复杂,因为不需要转换。 这 2 个 API 调用不会减慢您的速度。图像大小更重要!!.. 文件可以直接在文件系统上存储/访问并从那里提供。文件下载也在短时间内实现。此外,base64 编码使文件大致 ~33% (!!) 更大,这对大文件的性能有巨大影响。
选项 2
Base 64 更安全,因为没有人可以像 here 所述链接到您的网站。
出于安全原因,您只需要使用 base64,或者如果您无法将图像数据作为二进制传输,则必须将其传输为字符串。
用例
- 如果这是您的私人非生产性项目,请尝试两者并使用您喜欢的一个。最后,您正在学习一些东西。保持一致很重要!
- 如果某个选项更适合您,只需按照您喜欢的方式实施即可。当您可能有更多经验或完成应用程序的核心部分时,您始终可以重构应用程序的给定部分。有时,在使用其中一种技术一段时间后,会更清楚使用哪种方法。
- 为了学习,有时最好还是继续实践一些可行的方法
并在出现问题时开始重构。而不是过度设计小型