Yahoo! Query Language

本主题由 金刚不坏 创建于 2009-10-8 16:01:36

What is YQL?
The Yahoo! Query Language is an expressive SQL-like language that lets you query, filter, and join data across Web services. With YQL, apps run faster with fewer lines of code and a smaller network footprint.
Yahoo! and other websites across the Internet make much of their structured data available to developers, primarily through Web services. To access and query these services, developers traditionally endure the pain of locating the right URLs and documentation to access and query each Web service.
With YQL, developers can access and shape data across the Internet through one simple language, eliminating the need to learn how to call different APIs.
How Do I Get Started?
Check out the YQL Console.
Read how to access YQL from your application.
Get your API Keys to sign your requests if you need them.
Using the API or Web Service
YQL Overview
YQL exposes an SQL-like SELECT syntax that is both familiar to developers and expressive enough for getting the right data. Through the SHOW and DESC commands, we enable developers to discover the available data sources and structure without opening another Web browser.
YQL Open Data Tables
Open Data Tables enable developers to add tables for any data on the Web to our stable of API-specific tables. Using Open Data Tables, anyone can make their data YQL-accessible. If you would like to create an Open Data Table, visit the community page at http://datatables.org.
Examples:
Zillow
Yelp
Pidgets Geo IP

YQL Execute
Building upon Open Data Tables, the Execute element gives developers full control of how the data is fetched into YQL and how it's presented back to the user. With Execute, developers can build tables that manipulate, change, and sign the URLs to access almost any protected content. This lets YQL access and combine data across a variety of different authenticated services such as Netflix or Twitter. Developers can call multiple services and data sources within Execute to join and mash up data however they desire, letting Yahoo! do the work rather than their applications. Data can be tweaked and manipulated into an optimal format for applications to consume.
Execute elements run server-side JavaScript with E4X (native XML) support. This gives developers a fully functional language that Web developers know, and lets them do almost anything they want with the data. We've added a few new global objects to the language to enable developers to: include JavaScript libraries and code from any URL; fetch data from any URL/Web page; run other YQL commands; and perform data filtering and conversion.
Examples:
CSS selectors for HTML - a CSS selector table for getting data from HTML pages
use "http://yqlblog.net/samples/data.html.cssselect.xml";
select * from data.html.cssselect;
Try CSS selectors.
Unified web+image search - perform a BOSS search that also returns an image from the BOSS image search for the same site and query term in a single result set
use 'http://yqlblog.net/samples/search.imageweb.xml' as searchimageweb;
select * from searchimageweb where query='pizza'
Try Unified web+image search.
YQL Insert/ Update/ Delete
You can use YQL to write and modify data on Web services and applications using SQL keywords: INSERT, UPDATE, and DELETE. These verbs let you manipulate data mapped onto an Open Data Table and enables developers to use Open Data Tables to do the following:
insert new Twitter status messages, not just list them
add new comments to a blog, as well as read them
store data in a remote database
INSERT INTO Internet
Open Data Table (ODT) developers can add support for these verbs into their tables by creating new binding types in their ODT definitions. They can then perform the insert/update/delete on the remote web service by creating an execute element that runs their JavaScript to create the right content payload and send it to the remote service. We've extended the capabilities in our server-side JavaScript, so y.rest() can now POST, PUT and DELETE.
Try creating a new tweet from the YQL console by following this link:
use 'http://www.yqlblog.net/samples/twitter.status.xml'; insert into twitter.status (status,username,password) values ("Playing with INSERT, UPDATE and DELETE in YQL", "twitterusername","twitterpassword")
Using YQL for Commercial and Non-Commercial Applications
Our goal is to make it easy for you to use YQL in the widest possible range of applications. Please read the notice and usage limits described below for more information. If you have additional questions, please read the YQL Terms of Service and/or contact us at the email address below.
Notice
YQL can be used for commercial purposes
If we're going to shut down YQL, we will give you at least 6 months notice with an announcement on this web page and in our forum
YQL has a performance uptime target of over 99.5%

Usage Limits
Per application limit (identified by your Access Key): 100,000 calls per day
Per IP limits: /v1/public/*: 1,000 calls per hour; /v1/yql/*: 10,000 calls per hour

Additional Notes
All rates are subject to change
You may also be subject to the underlying rate limits of other Yahoo! and 3rd party web services
YQL relies on the correct operation of the web services and content providers it accesses

Please send email to yql-questions [at] yahoo-inc.com with requests for additional information.
Information for content and API providers
If you are a content or API provider and would like to learn how to opt out, or work better with YQL, please check our provider page.
Support and Community
Questions and suggestions on YQL are discussed on the YQL Developer Community forum. If you have questions or need technical support, please use this forum.



http://developer.yahoo.com/yql/

放心注册,GeeKaa不会虚耗你半点时间,你只会发现更多乐趣。 立即注册