Hurl: Удобный Curl

в 6:02, , рубрики: amazon, Amazon Web Services, api, curl, Софт, метки: , ,

Привет! image

В 2009 году на «Rails Rumble» Лехом Кульвером и Крисом Ванстратом был создан замечательный инструмент — Hurl.

Hurl — это RoR приложение, предназначенное для того, чтоб посылать HTTP запросы. В целом, функциональность Hurl схожа с Curl. Идея и методы те же, но предназначение совсем другое.

К сожалению, хостинг, на котором стоит официальный Hurl очень нестабильный и медленный и не подходит для корпоративного использования. Технологии opensource дают нам возможность поднять свой экземпляр Hurl и даже сделать его лучше и удобнее.

Итак мы подняли и улучшили Hurl на своём хостингеhurl.quickblox.com. Приложение настроено на EC2 инстансе, а данные хранятся на S3.

Чем же мы улучшили исходный код Hurl? Во-первых, в своем форке sc-raptor поправил баг с авторизацией на GitHub, которая нивкакую не хотела работать в исходном коде. Во-вторых, korjik добавил в Hurl возможность укорачивать ссылки на Hurl с помощью bit.ly на нашем пользовательском домене qblx.co.

А теперь я подробнее опишу возможности Hurl. Основными важными деталями это приложения есть:

  • Генерация HTTP запросов
  • Сохранение истории запросов
  • Расшаривания запроса и тела ответа отдельно

Итак, зайдя на главную страницу, не забудте залогиниться через GitHub.
image

После логина, вы увидите следующую картину: ваш GitHub логин авторизовал вас и дал возможность просматривать все сделанные вызовы
image

Далее, вы можете сделать самые простые запрсы, например к Яндекс API из статьи zviryatko. Сделаем обычный запрос:
image

Вот мы и получили перевод слова midnight — полночь.

Рассмотрим подробнее нижнюю часть странички:
image

Сейчас мы находимся на вкладке Response — Ответ. Тут мы можем увидеть ответ на сделанный нами запрос.

Нажав на Request — Запрос, мы видим запрос, который мы сделали в таком формате:
image

Самое интересное — ссылки "view full size" и "permalink". Зайдя по ним, вы сможете увидеть тело ответа ну и попробовать другие запросы.

Зайдя в свой «кабинет», вы найдете список выполненных вами хурлов:
image

Так же можно удалить то, что не нужно.

Как и где хранятся хурлы? В ruby приложении есть папка db. В ней в бинароном виде лежат «хурлы», «вьюхи» и юзеры:

$ ls -l db/hurls/
total 1028
drwxr-xr-x 48 hurl hurl 4096 2012-03-22 15:58 00
drwxr-xr-x 45 hurl hurl 4096 2012-03-22 16:46 01
drwxr-xr-x 49 hurl hurl 4096 2012-03-22 13:58 02
drwxr-xr-x 47 hurl hurl 4096 2012-03-22 14:11 03
drwxr-xr-x 44 hurl hurl 4096 2012-03-22 13:24 04
drwxr-xr-x 45 hurl hurl 4096 2012-03-23 10:38 05
drwxr-xr-x 48 hurl hurl 4096 2012-03-23 14:32 06
drwxr-xr-x 47 hurl hurl 4096 2012-03-23 08:34 07
drwxr-xr-x 50 hurl hurl 4096 2012-03-23 10:07 08
drwxr-xr-x 52 hurl hurl 4096 2012-03-21 10:45 09
drwxr-xr-x 43 hurl hurl 4096 2012-03-23 15:43 0a

Места занимается не очень много. За более чем полгода активного использования Hurl, наша команда сделала всего 152 Мб запросов:

$ du -h --max-depth=1 db/
77M	db/hurls
76M	db/views
136K	db/users
152M	db/

Для чего вообще все это? Мы работаем над проектом, который очень активно использует API. Тестирование и написание документации заметно облегчается, если использовать Hurl. Так же, наглядные примеры для пользователей не только в Curl запросах и ответах, а и место, где вы сами наживую можете потрогать API.

В общем, Hurl явлется легким и удобным инструментом для создания и хранения HTTP запросов. Устанавливется как простейшее Rails приложение. Занимает немного места и системных ресурсов. Рекомендуем воспользоваться!

Автор: qbtarzan

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js