2012-10-02 189 views
13

我正在尝试使用ExpressJS和Coffeescript来制作一个Web应用程序,该应用程序从Amazon,LastFM和Bing的Web API中提取数据。
用户可以请求数据,如特定乐队的特定专辑的价格,即将播放的音乐会时间和乐队的位置等......这类的东西。我应该做API请求服务器端还是客户端?

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

谢谢!

回答

2

构建自己的REST API,这是常不错抽象掉你的存储和相关服务来隔离变化,并提供了巩固和一致的Web API为您的应用。但有时候,如果你有一个很好的超媒体web api(RESTful响应链接到其他资源),你可以在你的服务响应中引用另一个服务的资源链接(例如:SO请求可以引用gravatar图像/用户资源)。没有一个适合所有人的大小 - 这取决于您是要封装依赖项还是与其集成。

将您的服务的web-api请求通过expressjs公开为您自己的web-apis可能会有所帮助。

从节点发出http web-api请求很简单。这里的另一个SO覆盖后认为:

HTTP GET Request in Node.js Express

+0

谢谢你的链接。我会试试这个。我还可以问,你把这个getJSON模块放在应用程序的结构中的哪个位置?比方说,我不会将调用结果存储到我的数据库中。 – aeyang

+0

另外,在你的另一篇文章中,你提到你有一个更完整的样本。这个报价还是不错的? – aeyang

+0

当然,为了玩耍和演示,我写了一个学生休息服务,与Parse.com讨论存储的http请求:https:// github。com/bryanmacfarlane/nodefun/tree/master/express/helloworld/service – bryanmac

1

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

您可以使用节点的http.request()获取数据,并与express.js

6

有两个关键因素为这样一个问题:

  1. 不要呼叫招致任何数据访问?结果是否会写入屏幕?
  2. 如何&您打算如何处理错误?你如何处理节流?

项目#2在这里真的很重要,因为Web服务在所有时间都出现故障,原因很多。您拨打Bing,亚马逊&最后一次FM可能会失败1%或0.1%的时间(根据我的经验)。

要请求用户服务器端的JS你可能想看看Requestpackage on NPM

+0

感谢您的链接。下面的两个答案都提到了'http.request'。我想知道'Request' npm包是不同的?使用更简单吗? – aeyang

+0

'http.request'库是非常低级的访问。 NPM中的Request请求库支持OAuth,cookies,流和表单提交等内容。如果您尝试将呼叫代理给第三方,则需要此工具。 –

+0

谢谢。我肯定会尝试这个! – aeyang

相关问题