API 获取应该是前端还是后端? [关闭]

Posted

技术标签:

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

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

【问题讨论】:

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

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

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

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

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

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

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

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

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

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

【讨论】:

@nathanyc - 由于您可能是新来的,如果这回答了您的问题,您可以通过单击答案左侧的复选标记向社区表明这一点,这也将为您赢得*** 上的一些声誉点是为了遵循正确的程序。

以上是关于API 获取应该是前端还是后端? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Django 是用于前端还是后端? [关闭]

使用laravel作为后端API和AngularJS作为前端的实时通知

公共和私有端点是不是应该有单独的 API? [关闭]

我应该如何聚合多个 API 请求?

在前端开发中mock后端数据

在前端和后端保护路由[关闭]