【发布时间】:2011-09-15 15:36:39
【问题描述】:
我是这里的新手,对一些事情感到困惑
一些网站(twitter、foursquare等)提供API给第三方开发者调用。这些 API 是网站提供的 Web 服务吗?
这些网站本身是否建立在这些公共 API/Web 服务之上?理论上有可能吗?
比较传统构建的网站和基于 Web 服务构建的网站,优缺点?有没有性能、可扩展性等差异?
提前致谢!
【问题讨论】:
标签: web-services api web api-design
我是这里的新手,对一些事情感到困惑
一些网站(twitter、foursquare等)提供API给第三方开发者调用。这些 API 是网站提供的 Web 服务吗?
这些网站本身是否建立在这些公共 API/Web 服务之上?理论上有可能吗?
比较传统构建的网站和基于 Web 服务构建的网站,优缺点?有没有性能、可扩展性等差异?
提前致谢!
【问题讨论】:
标签: web-services api web api-design
我相信有人可以给你一个更准确的答案,但请阅读你的问题并应用我自学的知识:
根据W3C对Web Services的简单技术定义:
Web 服务是一种软件系统,旨在支持通过网络进行可互操作的机器对机器交互。
http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/
我喜欢将 Web 服务视为其客户群使用的网站的交互元素。例如,Twitter 的网络服务包括:推文、消息、主题标签等。网络服务是用户可以执行的操作或来回传递的数据。
公共 Web API 为开发人员提供了在他们自己的站点上使用 Web 服务的方法。例如,Twitter 的 API 允许 example.com 站点在其自己的域内使用推文、消息传递、主题标签等。 API 是开发人员获取 Web 服务的外部访问权限以制作使用这些服务的应用程序的方式。
我不知道这个问题。我不会那样做的。我会使用公共 API 公开访问的方法。但是,我从未编写过自己的 API,更不用说 Twitter 或foursquare 的规模了。
我希望这会有所帮助。
【讨论】:
首先,您可能需要更多关于什么是 API 的信息:请查看Wikipedia api page。
回答您的问题(这些只是一般想法,并非最佳实践):
在这种情况下,API 是开发人员用来访问 Web 服务的一种方式,它不是服务本身。
您提到的网站没有使用自己的 API,因为这些 API 是为远程用户(客户端)设计的,并提供有限的数据集,而网站需要最高性能、访问完整数据库以及(几乎)总是使用服务器端代码。您提到的网站可能使用其他服务器端高性能 API。
【讨论】: