YQL服务可以实现对网上不同数据源的query,filter,combine(查询,过滤,合并)。
YQL说明类似SQL。下面的例子就是用YQL说明实现从Flickr上得到一系列text为cat的图片。
SELECT * FROM flickr.photos.search WHERE text = "cat"
为了使用YQL服务,需要使用HTTP GET,把YQL说明作为URL的参数,例如:
http://query.yahooapis.com/v1/public/yql?q=SELECT * FROM flickr.photos.search WHERE text = "cat"
当实施查询的时候,YQL服务就会访问网络上的数据源,传输数据,返回XML或者JSON形式的数据结果。YQL可以使用许多类型的数据源,包括Yahoo!Web services 或者其他的网络服务,和网络数据类型例如:HTML, XML, RSS,和Atom.
-----------------------------------下面就来介绍如果利用YQL制作自己的小工具------------------------------------
介绍
这个手册告诉你怎么样制作一个简单的网络应用,通过YQL来获取RSS。YQL的调用在HTML的
script标签中实现,返回的JSON数据用JavaScript处理。
1、创建一个HTML的网页new.html
2、复制下面的HTML代码到new.html,第二个script标签的src属性暂时为空,以后我们会用YQL说明来填入。
<html>
<head><title>YQL and RSS: Yahoo! Top News Stories</title>
<style type='text/css'>
#results{ width: 40%; margin-left: 30%; border: 1px solid gray; padding: 5px; height: 200px; overflow: auto; }
</style>
<script type='text/javascript'>
// Parses returned response and extracts
// the title, links, and text of each news story.
function top_stories(o){
var items = o.query.results.item;
var output = '';
var no_items=items.length;
for(var i=0;i<no_items;i++){
var title = items[i].title;
var link = items[i].link;
var desc = items[i].description;
output += "<h3><a href='" + link + "'>"+title+"</a></h3>" + desc + "<hr/>";
}
// Place news stories in div tag
document.getElementById('results').innerHTML = output;
}
</script>
</head>
<body>
<!-- Div tag for stories results -->
<div id='results'></div>
<!-- The YQL statment will be assigned to src. -->
<script src=''></script>
</body>
</html>
3.打开网页http://developer.yahoo.com/yql/console/ 在show tables那里输入:
select title from rss where url="http://rss.news.yahoo.com/rss/topstories"
选择JSON按钮
------------------------------------------------------耽误了几天,补起来----------------------------------------------------------------------
点击TEST按钮,你就能在下面的视图中看到返回的JSON代码。
4.在YQL的说明中,用“*”代替“title”。点击TEST,在视图中将会返回所有的信息,而不只有 title的信息。
5.在返回ideJSON中,找到结果对象。需要主要的是,返回的对象保存在数组中,数组的每一项代表一个对象,包括了title,link,description和每一条news article对象。
6.点击Copy URL按钮。从网页yql_news_app.html中复制URL到第二个script的属性里面。就像下面的代码一样:
<body>
<div id='results'></div>
<script src='http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Frss.news.yahoo.com%2Frss%2Ftopstories%22&format=json&callback=cbfunc'>
</script>
</body>
注意了,YQL的说明已经是URL形式的编码,说明了JSON里面返回的内容。
7.在这个URL的最后,用'top_stories'代替'cbfunc'.新的返回函数top_stories将会在YQL返回JSON后执行。
好了,基本就这些了,运行HTML就能看到结果啦。。
这些都是最基本的,后面还有好多要学的,貌似这段时间又不可能学习了。后面还有服务器什么的。。。。