我应该在服务器端还是客户端进行API请求?

时间:2012-10-02 05:07:24

标签: ajax api node.js coffeescript express

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

我的问题是:我应该使用jQuerygetJSON在客户端进行这些API调用,还是应该是服务器端?我做过客户端请求;我怎样才能从服务器端进行API调用? 我只是想知道最佳实践是什么,如果有人能指出我正确的方向来制作服务器端API请求,那将非常有帮助。

谢谢!

3 个答案:

答案 0 :(得分:7)

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

  1. 来电会产生任何数据访问吗?结果是否会写入屏幕?
  2. 如何&你打算在哪里处理错误?你如何处理节流?
  3. 项目#2在这里非常重要,因为Web服务因各种原因而一直在下降。你打电话给Bing,亚马逊&最后的FM可能会失败1%或0.1%的时间(根据我的经验)。

    要向用户服务器端JS发出请求,您可能需要查看Request package on NPM

答案 1 :(得分:4)

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

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

从节点轻松发出http web-api请求。这是另一篇SO帖子:

HTTP GET Request in Node.js Express

答案 2 :(得分:1)

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

您可以使用节点http.request()获取数据并使用express.js构建您自己的rest api