10

这是一个多部分的问题。我刚刚观看了主要开发人员(我的 MS 课程毕业生)关于 YQL 的一个非常有趣的演示。虽然它非常引人注目,而且我期待着尝试一下,但我想知道是否有人知道用于查询多个 Web 服务 API 以使它们看起来无缝的替代框架,这就是 YQL 的明显目的?

Yahoo 的策略是创建 XML 模式定义,将给定 Web 服务的参数绑定到他们的 YQL Open Table 查询参数中,我认为这非常聪明。是否有任何工具尝试(也许我在这里很天真)自动发现 REST API 中的参数?我知道使用 SOAP API,因为有一个已发布的 WSDL,它使自动化更容易,但是还没有办法用 REST 做到这一点吗?有人在尝试吗?

4

3 回答 3

6

是的,人们正在尝试为 REST 生成描述语言。最受欢迎的尝试是 WADL。SO上有很多关于WADL的问题。这是个好主意吗?在我看来没有。

REST 不需要超越它已经拥有的超媒体的发现模型,因为它试图在与 Web 服务不同的架构层解决问题。Web 服务将数据传送到应用程序的业务逻辑/域模型。REST 是关于向表示层提供内容和行为。

打个比方怎么样?想想 C++ 中对象和结构之间的区别。结构只是一些客户端进程将要操作的简单数据。这就是 Web 服务所做的,它返回一个数据块,一个结构。当然,也许它做了一堆服务器端处理来产生结果,但最终结果是一堆数据。一个 REST 接口传递一个对象。即它包含可用于操作该对象的数据和方法。根据定义,如果您了解统一接口并了解返回的媒体类型,那么您已经知道可以对响应进行什么操作。发现机制是多余的。

如果你觉得这很难相信,那就想想网络。网络浏览器如何发现网页?网络没有正式的发现机制,但我们可以通过网络浏览器发现一个信息世界。

于 2009-09-24T13:59:42.057 回答
1

有这个小网站http://zachgrav.es/yql/tablesaw/确实会自动发现 REST api 中的参数并将其转换为 YQL 兼容表。

于 2010-03-10T09:40:21.607 回答
1

有两种查找信息的方法。您要么使用 100% 明确的语言,要么使用自然语言。像 YQL 这样介于两者之间的任何东西都注定要失败,因为它既不提供任何东西,也只能在其作者吹捧的示例中运行良好。

我在http://zscraper.wordpress.com/2012/05/30/enough-with-crawling-2上写了一篇博客。我个人的立场是,如果你先做功课,你总是会得到最准确的结果,即研究目标域并弄清楚如何明确地查询它。

要回答您的问题并为您提供替代方案 - 请尝试Bobik。这是您通过 REST API 控制的云支持的抓取服务。用传统语法(Bobik 支持 Javascript、JQuery、XPATH 和 CSS)编写您的“查询”并调用 Bobik 从任何客户端环境(网页、移动应用程序或您的服务器)运行它们。

希望这可以帮助。

于 2012-06-17T20:16:42.923 回答