来自前端或后端的外部API调用?

tim*_*c22 7 api node.js angularjs

场景: 我有一个Node和Angular Web应用程序.它需要为数据调用外部api(第三方服务)(更具体地说:https://api.represent.me/api/questions/).

问题: 从Angular前端进行外部调用是否更好:GET http://thirdpartyservice.com/api/data或者让前端调用相同的域Node端点:GET http://example.com/node-backend-api然后调用GET http://thirdpartyservice.com/api/data哪个端口然后从第三方api获取并处理数据,然后再将其传递给angular?

思考:

  • 我想两个api调用不太可取,但它在同一个域上,所以这不是一个真正的问题吗?
  • 从Node端获取将更安全(特别是如果使用了密钥),并且还掩盖了使用第三方服务的事实.
  • 如果从前端打电话,CORS的东西可能会妨碍.
  • 这里是上下文键,例如从前端调用字体apis可能是最好的,但是从后端获取和需要处理数据可能更好.

其他人推荐(和做)的是什么,还有其他任何支持或反对点也可以添加到"思想"中吗?

小智 7

这取决于您的第 3 方 API 需要什么。

如果您需要一些凭据来调用 API,出于安全考虑,最好在后端处理调用。

如果 API 提供时间敏感数据,例如您键入时的一些自动完成信息,则最好不要对后端进行额外的往返并从前端调用它。

您可以创建一个指向第 3 方服务器的子域,例如 3rdparty-api.yourdomain.com,这会消除很多跨域问题。但这需要您的第 3 方提供商的合作。

因此,没有明确的是或否答案,但这取决于您的 API 的情况和重点。