`
kongxiantao
  • 浏览: 112169 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

YQL介绍---很强大啊

阅读更多

原文地址:http://www.aliued.cn/?p=2728#more-2728

 

Neo是一个小公司的Web工程师,老板Morpheus需要Neo开发一个Web程序,这个程序要求:

1.用户能够根据关键词获取Flickr上的图片信息,如搜索瀑布(waterfall)就能获得与瀑布有关的图片;
2.如果图片有地理标识,根据地理标识,获取这个地方的相关信息;
3.顺便向用户显示当地最近的天气情况,说不定用户想去旅游哦。

 

Neo开始工作,首先查看和学习Flickr的API ,又针对Flickr的API编写了一套程序获取数据,再对返回数据进行处理以得到满意的格式,终于,Neo可以把图片展示到网页上了; 紧接着,为了能够根据图片地理标识获取图片拍摄地的信息,Neo又开始寻找地图服务的API并且学习使用,针对地图API再一次编写地图数据查询程序,处 理返回数据的格式,然后展示到页面上;最后,要想获得当地的天气情况,Neo还必须熟悉某个天气信息提供商的API,继续编写天气数据查询程序,处理返回 数据的格式,在页面上展示给用户。Neo意识到为了开发这个鬼东西,自己反反复复学了3套API,如果需求变更,还可能有更多API加进来,最可怕的是, 以后Neo得长期维护这么多个API,想想真是噩梦!

设想我是Neo,我会试试YQL ,让它帮我把工作变得轻松快乐些。也许你并不了解YQL,没关系,那我们就来认识一下吧。

YQL (Yahoo! Query Language)是一种支持对互联网上的数据进行查询、过滤、连接、类似SQL语法的简单语言。用YQL官方的话:有了YQL,开发人员只需要使用一种 简单的查询语言即可访问和操控互联网上丰富的数据,而不再需要反复学习使用各种各样的API。YQL为我们提供丰富、实时的方法来操控互联网上任意可访问 的API,同时向开发者提供了一个可视化的Web控制台 ,使我们在使用和调试YQL的过程中更加高效便捷。

YQL Console

YQL就像一个超大的数据库,从理论上,这个数据库可以包含整个互联网上的信息。无论您是要基于各种API操作数据,还是从feed源(如RSS, XML,ATOM)获取数据,甚至是从指定的HTML页面上抓取结果,您所需要的就是使用YQL这种类似SQL的简单查询语言:

SELECT something FROM table_name WHERE some_field=some_value

YQL能够以规范的格式(XML/JSON)将结果返回给你。这听起来确实很酷,那我们就来看看通过YQL怎么获得与waterfall有关的Flickr图片数据吧:猛击此处 。当我们执行YQL语句后,控制台会打印出我们想要格式的数据,并且生成一个REST 查询链接,有了它,我们就可以用我们熟悉的编程语言开始玩转数据了。对于前端开发人员,我们只需要在控制台选择返回数据格式为JSON,并且提供一个回调函数,这时生成的url就是一个现成的JSONP url地址,如:

<script>
function loveData ( r ){
var results = r . query . results ;
alert ( results );
}
</script>
<script type= "text/javascript" src= "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20flickr.photos.search%20where%20text%3D%22waterfall%22%20limit%2010&format=json&callback=loveData" ></script>

在使用YQL的过程中,选用合适的JavaScript库加以辅助,如YUI,jQuery(准确来说YUI是一个框架),那么开发将会变得更加方便。就在9月7日 发布的YUI 3.2.0 已引入了YQL查询组件。如要通过YUI来调用YQL, 最简单的方法就是向页面中引入YUI3.2.0的seed文件:
然后加载YQL模块,你就可以使用YQL语句直接查询数据了:

YUI (). use ( 'yql' , function ( Y ) {
    Y . YQL ( 'select * from weather.forecast where location=90210' , function ( r ) {
          var results = r . query . results
          //results就是你所关心的数据
//现在你可以用它做任何事情
    });
});

YQL将Yahoo!的服务封装成YQL数据表,使得我们轻松地就能够获得这些丰富资源。更重要的是,YQL不只是让我们被动地使用现有的表数据,而是提供了一个开放数据建表平台(Open Data Tables ),我们可以基于YQL的规范构造自己的表数据。在此平台上,您可以使用标准的XML语法和服务器端JavaScript将API或各种数据源封装成自己需要的格式,这样,您就创建了一张属于自己的数据表。当然,由于YQL的表数据是托管在GitHub 上的,你还可以通过GitHub 向YQL项目组推送你的数据表,一旦被接受,那么其他开发人员将会享受到您为他们带去的便利,也因你的贡献,YQL的数据源会更加丰富,也更加强大。

前Yahoo!社交平台副总裁Neal Sample表示 :Yahoo! 正在尽可能的将所提供的服务都转移到YQL上。由于YQL的稳定、扩展性高及易用,对于开发人员来说具有长远利益。通过提供类似SQL的语法,YQL消除 了开发人员学习大量API的麻烦。他们坚信YQL是使用互联网服务的最佳方式,所以Yahoo!对YQL提供长期支持是毫无疑问的,大家可以放心使用。

 

分享到:
评论

相关推荐

    yql-rss-speed-comparison, 演示如何使用YQL检索RSS提要的快速演示.zip

    总的来说,"yql-rss-speed-comparison"项目提供了一个很好的学习平台,帮助开发者了解和掌握如何高效地使用YQL来处理RSS数据,同时也提醒我们在追求性能时应考虑各种因素并进行适当的基准测试。通过深入研究这个开源...

    用YQL和Jquery实现的跨域html页面截取

    YQL,全称为Yahoo Query Language,是由雅虎提供的一个强大工具,允许开发者以SQL语法查询网络上的各种数据源,包括XML、JSON等格式。YQL的一个重要特性是可以绕过浏览器的同源策略,因此可以用来进行跨域请求。通过...

    Stock-Data-jQM-1.1:使用YQL检索库存数据的jQuery Mobile 1.1站点

    首先,YQL是一种强大的工具,允许开发者通过SQL-like语法查询和组合来自不同网络源的数据。对于股票数据,我们可以使用YQL的内置表`yahoo.finance.quotes`来获取包括股票价格、市盈率、市值等在内的多种信息。例如,...

    jquery和雅虎的yql服务实现天气预报服务示例

    首先,雅虎的YQL是一种强大的工具,允许开发者通过类似于SQL的语言来查询、筛选和组合来自多个在线数据源的信息。它支持多种数据格式,如HTML、XML、RSS和Atom,以及Yahoo!自身的Web服务。开发者可以在Yahoo的YQL...

    weatherboss:演示 - 使用 YQL 和 jQuery 制作天气应用

    \n\n**YQL(Yahoo Query Language)**\nYQL是一种强大的数据查询语言,允许开发者通过简单的SQL-like语法来访问和组合来自不同网络源的数据。在这个项目中,YQL被用来从Yahoo Weather API获取特定地点的天气信息。...

    currency-converter:用于货币换算的Web应用程序。 这是使用Yahoo YQL API构建的

    1. **Yahoo YQL API**:Yahoo YQL(Yahoo Query Language)是一种强大的查询语言,允许开发者通过简单的SQL语法来访问和操作网络上的数据。在这个项目中,YQL API被用来获取最新的货币汇率信息,以便进行货币转换...

    Go-golang中规则引擎的一种查询语言类似于SQL中的where部分

    总之,Go-golang中的这种规则引擎查询语言提供了一种强大的工具,它借鉴了SQL的`WHERE`子句概念,使得业务逻辑的编写更加直观,同时也保持了与Go语言的兼容性和效率。在开发过程中,理解并熟练掌握这种规则引擎将极...

    前端项目-FeedEk.zip

    YQL是一个强大的工具,它允许开发者通过简单的SQL-like语法查询各种网络资源,包括JSON、XML和其他数据格式。通过YQL,FeedEk可以跨域获取数据,这在处理跨域资源共享(CORS)问题时非常有用。 使用FeedEk插件的...

    the_newsroom:基于 jQuery OOP、Ajax 和 YQL 的新闻应用

    YQL 是 Yahoo 提供的一种强大的查询语言,它允许开发者通过简单的 SQL-like 语法来访问和操作网络上的数据。在“the_newsroom”项目中,YQL 可能被用于获取新闻源数据。开发者可以利用 YQL 的 API 来查询各种在线...

    cpp-Vespa开放的大数据服务引擎

    在查询处理方面,Vespa提供了一种强大的查询语言YQL(Yahoo Query Language),让用户可以编写复杂的查询表达式,进行高级的查询操作,如布尔逻辑、过滤、排序、分页等。同时,Vespa还支持基于机器学习的排名功能,...

    移动开发框架

    2. **数据集成**:支持AJAX、JSONP和YQL进行数据绑定,利用localStorage进行离线数据保存。 3. **Animator**:一个桌面应用程序,用于为WebKit浏览器和触摸屏移动设备创建CSS3动画,以实现丰富的设备体验。 **开发...

    fofa-master.zip

    总结,fofa API是一个强大的工具,通过理解其功能、学习查询语法,并结合fofa-master中的SDK与示例,开发者可以高效地获取和分析网络资产信息,为网络安全研究提供有力支持。正确、合规地使用fofa API,能够极大地...

    HotelRating:一个小应用程序,告诉tripadvisor 用户输入的酒店名称的评级; 仅使用客户端 js 和 yahoo 查询语言构建

    它展示了如何通过客户端技术直接与第三方API交互,实现无服务器的轻量级应用,对于学习JavaScript和YQL的开发者来说,这是一个很好的实践案例。同时,这也启示我们,即使是简单的应用,也可以通过巧妙的技术组合,为...

    MemeThis-开源

    YQL是一种强大的查询语言,允许开发者以SQL-like的方式访问和组合各种网络数据源。在"MemeThis-开源"中,simpleyql库被用来方便地从用户当前的网页提取数据,并将其提交到Yahoo!平台,实现了内容的快速发布。 其次...

    使用来自 Yahoo Finance API 的数据的 C ++算法交易代码_C++_代码_下载

    C++是一种强大的面向对象的编程语言,它允许程序员创建高效且可扩展的软件。在本项目中,我们将使用C++来设计和实现我们的算法交易系统。熟悉基本语法、类和对象的概念是至关重要的。 **2. Yahoo Finance API** ...

    senchatouch在移动设备的应用.pptx

    数据集成是Sencha Touch 的一大亮点,它支持数据模型(Models)、数据存储(Stores)和数据代理(Proxies),可以轻松处理本地和服务器数据,支持JSON/P、XML和YQL等数据格式。此外,它还提供了关联、验证等功能,...

    用HTML5开发移动应用.pdf

    此外,它还集成了强大的数据管理功能,支持通过Ajax、JSONP、YQL等方式绑定数据到组件模板,并可以将数据写入本地存储,实现离线应用功能。 开发Sencha Touch应用前,你需要准备最新版本的Sencha Touch SDK,并将其...

    iPhone应用开发技术专题

    四是强大的数据集成能力,支持Ajax、JSONp、YQL等方式进行数据绑定和本地存储,使得数据管理更为便捷;最后,其丰富的可重用组件简化了开发过程,提高了开发效率。 综上所述,iPhone应用开发涉及的技术层面广泛,从...

    Sencha_touch2详细资料整理一

    它提供了一个强大的数据包,支持通过Ajax、JSONp和YQL等技术将数据绑定到组件模板,甚至可以将数据写入本地离线存储。这意味着即使在网络不稳定或无网络的情况下,用户也能继续访问应用的部分内容。 在应用架构上,...

    iStockTracking:Java中的算法库存跟踪

    YQL 是 Yahoo 提供的一种强大的查询语言,可以用于获取网络上的各种数据,包括股票市场信息。在iStockTracking中,通过YQL,程序能够方便地抓取到Yahoo Finance上的股票历史数据和实时报价,为算法交易提供准确的...

Global site tag (gtag.js) - Google Analytics