- PVSM.RU - https://www.pvsm.ru -

Hurl: Удобный Curl

Привет! image

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Зайдя в свой «кабинет», вы найдете список выполненных вами хурлов:
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


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/amazon/4362

Ссылки в тексте:

[1] «Rails Rumble»: http://r09.railsrumble.com/entries?year=2009

[2] Лехом Кульвером: http://github.com/leah

[3] Крисом Ванстратом: http://github.com/defunkt

[4] Hurl: http://hurl.it

[5] хостинг: https://www.reg.ru/?rlink=reflink-717

[6] hurl.quickblox.com.: http://hurl.quickblox.com.

[7] своем форке: https://github.com/sc-raptor/hurl

[8] sc-raptor: https://github.com/sc-raptor

[9] korjik: http://habrahabr.ru/users/korjik/

[10] bit.ly: http://bit.ly

[11] qblx.co.: http://qblx.co.

[12] статьи: http://habrahabr.ru/post/138945/

[13] zviryatko: http://habrahabr.ru/users/zviryatko/

[14] view full size: http://qblx.co/GLAhjQ

[15] permalink: http://qblx.co/GOBxp9