Пользователь
0,0
рейтинг
28 марта 2012 в 10:02

Разработка → Hurl: Удобный 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
карма
18,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (15)

  • +1
    Инструмент выше всех похвал. Спасибо за статью!
  • +2
    hurl такой классный инструмент, а так мало про него информации. Даже онлайн аналогов достойных нету. Спасибо за статью.
    • 0
      Что значит нет. А про Web-Sniffer забыли?
      • 0
        А, видел, пользовался таким, но не нашел возможности шарить ссылку на запрос.
  • 0
    Давно знаком с hurl, прекрасный инструмент — действительно, очень удобно тестировать приложения и API. Рад слышать, что он растет и развивается!
  • –1
    Не в тему, но всё-же — подскажите пожалуйста рускоязычный мануал(на английском, не свосем понимаю, запутался в своём переводе) по cUrl для языка C/C++.
    СПасибо.
    • 0
      Уважаемый, тут передельно ясно на английском написано все. Кажется, даже не через гугл транслейт все будет ок.
      • 0
        Андрей, спасибо за ваше Капитанское замечание!
        Но будьте внимательны, я написал, что в официальной документации я запутался с переводом(не хватает у меня уровня английского), а переводчики не люблю. Поэтому спросил про русские мануалы.
  • +1
    Лиа Кульвер — девушка, известный разработчик, евангелист OAuth. Лех Кульвер — это, наверное, ее злой клонобрат-близнец.
  • 0
    Я сейчас работаю на проекте, где у нас активно разрпабатывается и используется REST. Мне с головой хватает REST Client плагина для Firefox. Единственный минус — нельзя сохранить какой-то запрос. Так что если не нужно каких-то наворотов в виде сохранения, то можно вполне обойтись одним легковесным плагином для Firefox или другого браузера.
    • 0
      Согласен, я тоже использовал этот плагин, но перешел на хурл, потому что надо было ссылки на выполненные запросы с конкретными параметрами отправлять коллегам или использовать в доке/туториалах.
      • 0
        Именно это и является главным приимуществом хурла.
  • 0
    Кстати, для тех кто работает с OS X, есть удобный нативный клиент — ditchnet.org/httpclient/

    Хотя обычный консольный curl часто удобнее.
  • +1
    Для Chrome есть Postman. Иногда использую apigee.
  • 0
    А еще, для Chrome есть приложение REST console, с помощью которого можно делать различные HTTP запросы.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.