【问题标题】:Should frequent external API calls be made from the front-end or back-end?应该从前端还是后端进行频繁的外部 API 调用?
【发布时间】:2021-04-23 19:19:34
【问题描述】:

我正在构建一个经常使用 Spotify API(用于搜索、获取用户数据等)的 React/Node.js Web 应用程序。我想知道我是否应该直接从前端向 Spotify API 发出请求,或者调用我自己的后端,然后它会处理 Spotify API 请求。

我的想法:

从前端调用外部 API:

  • 由于前端有更多代码(例如在 useEffect 挂钩内发出 3 个 Spotify API 请求),因此用户体验可能会变慢。
  • 潜在的安全问题? Spotify API 要求所有请求都有 access_token 标头。

从后端调用外部 API:

  • 由于额外往返后端,用户体验也可能会变慢。
  • 对我自己的后端的不必要请求(更高的成本、云账单等)。

感谢任何建议。

【问题讨论】:

  • 您不应向任何客户端公开 oauth 或访问令牌
  • 这里唯一相关的论点是access_token 部分,并且必须发生在后端,即“讨论”的结尾。
  • 如果您使用 Azure 应用服务计划之类的服务计划,您不会有更高的云费用,因为它的成本是固定的(如果额外的负载适合您的特定 SKU 的容量)
  • 也许您可以将来自 API 的响应缓存在后端的红色缓存中,以加快客户端请求
  • @Jupiter 有时缓存可能比带宽本身更昂贵

标签: javascript spotify


【解决方案1】:

您应该绝不信任前端的外部 API。这在许多层面上都是一种风险——提到的access_token 是一个很好的例子,它可能会给你带来麻烦。最重要的是,您无法控制用户看到的内容,API 可能会更改,从而暴露您的个人详细信息。

我们不要忘记 CORS 标头,外部 API 通常不允许您为您的域设置它们,这意味着您无论如何都必须通过您的服务器代理响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 2020-03-13
    • 2017-02-03
    • 2021-09-11
    • 2018-02-03
    • 2014-05-10
    • 2019-02-20
    相关资源
    最近更新 更多