In the hopes of reducing the complexity of making data calls over the Web, eBay has launched a programming language, called ql.io, which bundles separate API requests into a single call.
“ql.io can reduce the number of lines of code required to call multiple HTTP APIs while simultaneously bringing down network latency and bandwidth usage in certain use cases,” wrote Subbu Allamaraju, an eBay developer who led the effort to build ql.io, in a blog posting announcing the new language.
With its release, ql.io has joined the growing rank of software developed by large Web service providers that have been released for others to use and refine, including Twitter’s Storm data stream analysis tool, LiveJournal’s memecached data caching software, Facebook’s Scribe log aggregation tool, and Google’s SPDY HTTP replacement.
For Web site and Web application developers, writing code to pull data from over the network can be a laborious process, Allamaraju stated in an earlier blog post, entitled “APIs are a Pain.”
As an example, he showed how a client program that needs product data listed on a e-commerce site will have to make three separate API (application programming interface) calls: one for executing the product search, one to fetch the details of the product, and one to fetch the user reviews. Writing these multiple APIs is a tedious process for the developer, and the multiple calls they generate unnecessarily taxes bandwidth and processing power, Allamaraju said.
ql.io offers a way for developers to aggregate all these requests into a single request, and have the Web server parse the request and send back the results in a single bundle.
A declarative event-driven language, ql.io is loosely based on both the SQL database query language, as well as the JSON (JavaScript Object Notation) data interchange format. To process the scripts, ql.io uses the node.js JavaScript interpreter on the server.
Allamaraju posted the source code for the language — which is licensed under Apache License 2.0 — on GitHub online code repository, and placed some examples of how the language could be used on the newly created ql.io site.