In the last few years, web APIs popped up like mushrooms. According to Programmable Web, there are 1200 widely used web APIs. I have heard the real number could be around 3,000 to 5,000. Though these APIs provided great flexibility and availability for us to access various data sources and services, they themselves start creating a long tail. For any applications, programmers have to spend tremendous amount of effort to sort through these APIs, decide on how to leverage, learn them and integrate them into their apps.There must be a better way!
That’s why I was truly excited by Sam Pullara’s talk at Etech on the newly introduced Yahoo! Query Language. If it indeed takes off, it could become the mother of all web APIs and greatly enhance the productivity of web programming.YQL first is a language. It brilliantly exposes a SQL-like syntax with the familiar statement like SELECT and USE. By doing so, it tranfers the traditionally difficulty caused by various syntax used in different APIs and provides an easy-to-learn programming interface. With this transformation, the services and data sources from various providers suddenly become unified and are treated as if they are just data saved in a “database” in the cloud.What you need to do is just to create a query with a standard SQL statement and submit it to Yahoo’s gateway. Moreover, better than classic SQL, the depth of the returned data is a full blow XML not limited to data with single step depth.
Moreover, YQL is a platform. Yahoo tries to perform various optimization to improve the query performance both in software but more importantly by leveraging its infrastructure. When you use YQL, a good deal of operations traditionally done locally now can be offloaded to Yahoo’s servers, such as sorting, uniquefying, and table joins (Note: they use inset lookup to by-pass the difficulty that various APIs don’t share the same index keys, but that’s something you don’t need to worry about and it has been taken care of by YQL backend).
YQL is also a learning and experimentation tool. With the YQL console, you can perform experiments interactively and observe returns from various services instantaneously in the very same browser window. You can then look up the returned XML or JSON data to quickly examine what’s available.
Besides already providing an extensive list of services that support YQL, Yahoo employees a user contribution model to try to quickly spread the coverage of YQL. Actually, any one can write up the a so-called YQL Open Data Table to make a specific web APIs become YQL accessible.
Please check out the YQL-QuickBase app that I created and let me know what you think.




Recent Comments