我应该做API请求服务器端还是客户端?

我正在尝试使用ExpressJS和Coffeescript来制作一个Web应用程序,该应用程序从Amazon,LastFM和Bing的Web API中提取数据。
用户可以请求数据,例如特定乐队的特定专辑的价格,即将到来的音乐会时间和乐队的位置等等。

我的问题是:我应该使用jQuerygetJSON使这些API调用客户端,还是应该在服务器端? 我已经完成了客​​户端请求; 我怎么会甚至从服务器端进行API调用?
我只想知道最佳做法是什么,如果有人能指出我做出服务器端API请求的正确方向,那将是非常有帮助的。

谢谢!

抽象出您的存储和相关服务以隔离更改并为您的应用程序提供统一且一致的Web API是非常好的。 但是有时候,如果你有一个好的超媒体web api(RESTful响应链接到其他资源),你可以在服务响应中引用来自另一个服务的资源链接(例如:SO请求可以引用gravatar图像/用户资源)。 没有一个适合所有人 – 这取决于你是要封装依赖还是与其集成。

将您的服务的web-api请求通过expressjs公开为自己的web-apis可能是有益的。

使http-api请求很容易从节点。 这是另一个SOpost,内容包括:

Node.js Express中的HTTP GET请求

这个问题有两个关键的考虑因素:

  1. 打电话是否会导致任何数据访问? 结果是否会写入屏幕?
  2. 你打算如何以及在哪里处理错误? 你如何处理节stream?

项目#2在这里非常重要,因为Web服务总是出现一系列的原因。 您对Bing,Amazon和Last FM的呼叫可能会失败1%或0.1%( 根据我的经验 )。

为了向用户请求服务器端JS,你可能想看看NPM上的Request 包 。

好吧,你描述它的方式我想你可能想从amazon,lastfm等等获取数据,用节点处理它,将它保存在数据库中,并提供你自己的api。

您可以使用节点的http.request()来获取数据,并使用express.js构build您自己的restAPI