2009-09-24 96 views
9

这是一个包含多个部分的问题。我刚刚看到一个关于YQL的主要开发者(我的MS程序毕业生)的一个非常有趣的演讲。虽然这非常吸引人,但我期待着尝试一下,但我想知道是否有人知道用于查询多个Web服务API以使它们看起来无缝的替代框架,YQL的明显目的是什么?YQL的替代品

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

+0

由于同一实体可能有许多不同的表示形式,我对REST API的自动发现工具存在怀疑态度。并可以定义它接受的参数。 WADL试图让事情变得更好,但我认为它在水中已经死了,因为它违背了REST开发人员的简约思维。好问题。+1 – 2009-09-24 13:45:58

回答

5

有人正在尝试为REST生成描述语言。最流行的努力是WADL。在这里有关于WADL的很多问题。这是个好主意吗?在我看来没有。

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

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

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

+0

我不同意这个答案,我不认为REST仅限于将内容(和行为)提供给“表示层”。我认为一个坏习惯绑定到REST的行为。 – ElLocoCocoLoco 2016-02-20 23:59:20

+0

@ElLocoCocoLoco如果你能帮我理解哪些REST约束被“绑定到REST的行为”所侵犯,以及这些违规的系统负面影响,那么我可能会理解为什么你认为它是一个“坏习惯”。 – 2016-02-21 19:22:47

+0

你懂法语吗? https://fr.wikipedia.org/wiki/Representational_State_Transfer 在提供“行为”时,我假设您正在讨论第6个(可选约束)REST服务的按需代码。如果是这样的话,那通常被认为是不好的做法,因为“一个国家变得依赖于客户端而不是与规则2相矛盾的服务器”。如果你正在谈论4.3点“回答解释其性质”,即使在这种情况下,我们需要一些时间一些服务来解释结果的性质,然后再执行请求本身(适应性/自动发现系统) – ElLocoCocoLoco 2016-02-22 14:39:34

1

有两种查找信息的方法。你要么使用100%明确的语言,要么使用自然语言。像YQL之类的任何东西都注定会失败,因为它既不能提供,而且只能在其作者吹捧的示例中运行良好。我的博客是http://zscraper.wordpress.com/2012/05/30/enough-with-crawling-2。我个人的立场是,如果你先做家庭作业,你会得到最准确的结果,即研究目标领域并弄清楚如何明确地查询它。

要回答你的问题,并给你一个选择 - 尝试Bobik。这是通过REST API控制的云端支持的抓取服务。使用传统语法(Bobik支持Javascript,JQuery,XPATH和CSS)撰写您的“查询”,然后致电Bobik从任何客户端环境(网页,移动应用程序或您的服务器)运行它们。

希望这会有所帮助。

+3

网站http://usebobik.com不再存在。我也相信该服务不再可用。 – Ragaar 2013-11-08 14:35:06