Компания eBay предложила язык программирования ql.io, позволяющий объединять запросы к различным API в один вызов, что упрощает получение данных из Web.

«Использование ql.io сокращает число строк кода, необходимого для обращения к различным HTTP API. Кроме того, в определенных случаях снижаются задержки в сети и требуемая полоса пропускания», — пояснил Суббу Алламараджи, разработчик eBay, который руководил работой по созданию ql.io.

Язык ql.io стал еще одним предствителем большой группы программных продуктов, разработанных крупными провайдерами сервисов и предложенных ими сообществу для использования и совершенствования. В эту группу входит, например, инструмент анализа потоков данных Storm, созданный Twitter, программное обеспечение хэширования данных memecached, предложенное LiveJournal, инструмент агрегирования записей протокола Scribe, разработанный Facebook, и протокол SPDY, созданный Google.

ИСПОЛЬЗОВАНИЕ QL.IO сокращает число строк кода, необходимого для обращения к различным HTTP API. Кроме того, в определенных случаях снижаются задержки в сети и требуемая полоса пропускания

ИСПОЛЬЗОВАНИЕ QL.IO сокращает число строк кода, необходимого для обращения к различным HTTP API. Кроме того, в определенных случаях снижаются задержки в сети и требуемая полоса пропускания

Для разработчиков веб-сайтов и приложений для Web написание кодов для извлечения данных из других сетей может оказаться трудоемким процессом, отметил Алламараджи в посте в своем блоге. Этот пост он и озаглавил соответственно: «API — кошмар разработчика».

В качестве примера он привел клиентскую программу, для которой требуются данные о продукте, размещенные на сайте электронной коммерции и в которой нужно написать три отдельных обращения к различным API: для выполнения поиска данных, для извлечения детальной информации о продукте и для получения отзывов пользователей. Написание запросов ко всем этим API — большая работа, а исполнение каждого запроса по отдельности влечет «накладные расходы» в виде загрузки полосы пропускания и ресурсов процессора.

С помощью ql.io разработчики смогут агрегировать все эти запросы в один. На специализированном веб-сервере выполняется разбор запроса и результаты выдаются единым пакетом.

ql.io представляет собой декларативный управляемый событиями язык, основанный частично на языке запросов к СУБД, а также на формате обмена данными JSON (JavaScript Object Notation). В нем используется интерпретатор node.js из JavaScript на сервере.

Исходный код языка, который распространяется на условиях лицензии Apache License 2.0, размещен в интерактивном репозитории кодов GitHub.