静态资产URL作为API响应中的绝对路径或相对路径

我有一个Spring Boot API服务,其他网站和移动应用程序将此API称为数据和图像。 图像存储在文件系统中,文件存储在数据库中。 我正在寻找在API响应中返回图像URL的最佳做法。

样本数据库记录

 +-----+-------+-----------------+
| Id  | Name  | profile_img_url |
+-----+-------+-----------------+
|  1  | John  | /image/john.jpg |
|  2  | Jane  | /image/jane.jpg |
|  3  | Doe   | /image/doe.jpg  |
+-----+-------+-----------------+

例如,我有一个成员API。

https://example.com/get/member/id

此API将返回JSON,其中包含成员图片网址

我应该以绝对URL还是相对URL返回profile_img_url

这是我的想法

使用相对URL回复

{
"name" : "John","profile_img_url": "/image/john.jpg",}
  • 在API代码中,无需担心基本URL(域名),调用网站或移动设备 应用需要照顾基本网址。
  • 在API中,我只需读取并发送配置文件img url,而无需花费时间来连接域名和文件名 设置绝对URL,因此响应应该很快。

使用绝对URL回复

{
"name" : "John","profile_img_url": "https://example.com/image/john.jpg",}
  • 在我的API中,我需要找到主机名并连接文件 导致API服务器上不必要负载的每个请求的路径。

  • 如果我要返回成员列表,则需要从数据库中获取并循环 通过列表并设置绝对URL。这可以使API 反应较慢。

  • 我还需要确保API服务器在代理或负载平衡之后, 可以检测域名/主机名并将其用于连接

  • 正在呼叫网站或移动应用,无需担心基本URL /域 名称

  • 我不必教育移动团队或客户端应用开发团队 关于如何获取个人资料图片

  • 将来,如果我决定从其他域或其他服务器来处理我的图像 子域,我不必通知其他团队

如果它是一个简单的网站(前端和后端在一起),则我认为相对URL对于一个网站就足够了,除非您正在运行需要非常高性能优化的高流量网站。

就我而言,我仅运行后端API。前端将是我们公司或合作伙伴的其他应用程序/移动应用程序

您也可以阅读this页,尽管它与我的问题没有直接关系,但它讨论的是与解耦系统中的URL有关的问题

那么,API响应中的最佳做法是绝对URL还是相对URL。

gaoshan254000 回答:静态资产URL作为API响应中的绝对路径或相对路径

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3135243.html

大家都在问