【发布时间】:2017-02-03 22:44:47
【问题描述】:
场景: 我有一个 Node 和 Angular Web 应用程序。 它需要为数据调用外部 api(第三方服务)(更具体地说:https://api.represent.me/api/questions/)。
问题:
从Angular前端进行这个外部调用是否更好:GET http://thirdpartyservice.com/api/data或让前端调用相同的域节点端点:GET http://example.com/node-backend-api然后调用GET http://thirdpartyservice.com/api/data,然后在传递之前从第三方api获取并处理数据它回到角度?
想法:
- 我猜两个 api 调用不太理想,但它在同一个域上 那么这真的不是问题吗?
- 从节点端获取会更安全(尤其是在秘密的情况下) 密钥被使用),并且还掩盖了第三方服务是 用过。
- 如果从前端调用,CORS 内容可能会妨碍您。
- 这里是上下文键,例如从调用字体 api 前端可能是最好的,但获取并需要处理数据 从后端可能会更好。
其他人推荐(和做)什么,还有其他支持或反对的观点可以添加到“想法”中吗?
【问题讨论】:
-
我会说这取决于什么样的第三方服务以及您使用它们的用途:) 所有前端依赖项都应该从前端调用,所有后端依赖项都应该从后端调用。
-
如果您不想处理来自 API 的响应,那么前端就可以了。但是,如果您从后端调用 API,您将获得额外的灵活性来操纵响应(当您获得大量数据作为响应时很有用)、过滤、添加额外数据等等,同时降低了服务器上的额外负载。这取决于你想对响应做什么:)
-
非常有帮助,是的,额外的数据处理,也许同时向数据库添加数据肯定是后端的工作。我认为根据从前端调用的前端依赖项和从后端调用的后端依赖项来看待它是一种很好的看待它的方法