这是一个多部分的问题。我刚看了首席开发人员(我的硕士课程毕业生)关于YQL的非常有趣的演讲。虽然它非常引人注目,我期待着尝试一下,但我想知道是否有人知道用于查询多个Web服务API的替代框架,使它们看起来无缝,YQL的明显目的是什么?
雅虎的策略是创建XML模式定义,将给定的Web服务参数绑定到他们的YQL Open Table查询参数中,我认为这非常聪明。是否有任何工具尝试(也许我在这里天真)自动发现REST API中的参数?我知道使用SOAP API,因为有一个已发布的WSDL,它使自动化更容易,但是还没有办法用REST做到这一点?有人在尝试吗?
答案 0 :(得分:6)
是的,人们正在尝试为REST生成描述语言。最受欢迎的工作是WADL。关于WADL有很多关于SO的问题。这是个好主意吗?在我看来没有。
REST不需要超出超媒体已有的发现模型,因为它试图在不同于Web服务的架构层上解决问题。 Web服务将数据传递到应用程序的业务逻辑/域模型。 REST是关于向表示层提供内容和行为。
类比怎么样?想想C ++中对象和结构之间的差异。结构只是一些客户端进程要操作的简单数据。这就是Web服务的作用,它返回一大块数据,一个结构。当然也许它做了一堆服务器端处理来产生结果,但最终的结果是一块数据。 REST接口提供对象。即它包含数据和可用于操纵该对象的方法。根据定义,如果您了解统一界面并了解返回的媒体类型,则您已经知道可以对响应做些什么。发现机制是多余的。
如果你觉得这很难相信,那就想想网络了。 Web浏览器如何发现网页?网络没有正式的发现机制,但我们可以通过网络浏览器发现一个信息世界。
答案 1 :(得分:1)
这个小网站http://zachgrav.es/yql/tablesaw/确实可以自动发现REST api中的参数并将其转换为YQL兼容表。
答案 2 :(得分:1)
有两种方法可以查找信息。要么使用100%明确的语言,要么使用自然语言。像YQL之间的任何东西都注定要失败,因为它既没有提供也只能用它的作者吹嘘的例子。
我在http://zscraper.wordpress.com/2012/05/30/enough-with-crawling-2发表了关于此事的博文。我个人的立场是,如果你先做作业,你将始终获得最准确的结果,即研究目标领域并找出如何明确地查询它。
要回答您的问题并为您提供替代方案 - 请尝试Bobik。这是一个云支持的抓取服务,您可以通过REST API进行控制。用传统语法编写“查询”(Bobik支持Javascript,JQuery,XPATH和CSS),并调用Bobik从任何客户端环境(网页,移动应用程序或服务器)运行它们。
希望这有帮助。