【问题标题】:Should API fetching be frontend or backend? [closed]API 获取应该是前端还是后端? [关闭]
【发布时间】:2020-03-13 05:07:37
【问题描述】:

我的网站应用程序使用 React 作为前端,而我正在选择 ExpressJS 还是 Flask.py 作为后端。无论哪种方式,我都知道 React 有 API 获取功能,还有其他后端专用框架。我的问题是,按照惯例,API 获取逻辑是前端还是后端的一部分?

【问题讨论】:

  • 我打算在这个应用程序中使用 API 从另一个来源获取 json 数据,然后显示在客户端。由于这是暴露给客户端的,我可以在 React 中完成,或者使用 API 逻辑的后端框架,然后使用 react 渲染它。澄清一下,将客户端可以看到的任何 API 放在后端或前端是否是惯例?
  • 很抱歉给您带来了困惑。例如,我想要一个城市列表,并通过使用新闻天气服务中的 API 将当前天气状况更新给客户端。因为是前端展示的组件,API的逻辑是应该在前端框架/库中完成,还是应该在后端渲染到DOM中。
  • @Nathanyc - 我在下面的回答是否没有为您解释决策过程?缺少什么?
  • 我现在明白了。对不起,我还是新手。感谢您为我清理它!

标签: node.js reactjs api express flask


【解决方案1】:

有一些条件要求或更喜欢 API 获取在后端:

  1. 当您需要使用安全凭证来访问 API 并且这些凭证需要保密时。

  2. 当 API 不允许跨域访问,因此您的前端无法直接访问它。

  3. 当您需要对 API 结果进行一些处理并且希望将处理算法保密(请记住,在前端完成的所有处理都是可用的供任何编码人员查看)。前端代码没有秘密。

  4. 当前端设备可能没有适当的资源(CPU、内存等)来处理 API 结果时。对于较小的专用设备尤其如此。

  5. 当您不希望前端设备必须消耗电池电量来定期访问 API 时。如果您定期轮询某些 API 以查找更改,则情况尤其如此。在这种情况下,您可能希望后端进行轮询,并让前端知道什么时候实际要做的事情。

  6. 当有理由对您对 API 的访问进行一些集中式性能管理时,例如缓存结果或限制请求。

  7. 当所有前端设备可能没有对 API 的适当网络访问服务器时。

如果将 API 访问放在后端没有令人信服的好处,那么它可能更具可扩展性(对于您的服务器),让前端尽可能多地完成工作。

【讨论】:

  • @nathanyc - 由于您可能是新来的,如果这回答了您的问题,您可以通过单击答案左侧的复选标记向社区表明这一点,这也将为您赢得stackoverflow 上的一些声誉点是为了遵循正确的程序。
猜你喜欢
  • 2012-02-23
  • 2014-03-09
  • 2020-06-02
  • 2015-06-23
  • 2019-02-01
  • 2018-02-03
  • 2012-08-19
  • 1970-01-01
  • 2019-02-20
相关资源
最近更新 更多