15

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

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

谢谢!

4

3 回答 3

7

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

  1. 通话会导致任何数据访问吗?结果会直接写到屏幕上吗?
  2. 您计划如何以及在哪里处理错误?你如何处理节流?

第 2 项在这里非常重要,因为由于各种原因,Web 服务一直处于关闭状态。您对 Bing、Amazon 和 Last FM 的呼叫可能会失败 1% 或 0.1% 的时间(根据我在这里的经验)。

要向用户请求服务器端 JS,您可能需要查看Request NPM 上的包

于 2012-10-02T06:30:38.470 回答
4

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

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

从节点发出 http web-api 请求很容易。这是另一篇涵盖该内容的 SO 帖子:

Node.js Express 中的 HTTP GET 请求

于 2012-10-02T05:32:54.260 回答
1

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

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

于 2012-10-02T05:17:19.647 回答