В этом посте мы рассмотрим gem’ы в Ruby в общем, а также конкретный gem под названием HTTParty.
Итак, RubyGems — это, в целом, менеджер пакетов. Вы можете посмотреть информацию о нём на сайте rubygems.org. Там действительно можно найти сотни и тысячи сторонних gem’ов.

Также, Gem — это менеджер пакетов, который устанавливается вместе с установкой Ruby. Вы можете выполнять такие команды как gem install name
.

Если вы хотите узнать, установлен ли gem, вы можете сделать gem list
, в этом случае httparty.

Если он не установлен, выполните команду gem install httparty
.
Вы также можете увидеть больше деталей о gem’е с помощью команды gem list httparty -d
.

Что такое Restful веб-сервисы
Restful веб-сервисы это простые веб-сервисы реализованные с помощью HTTP (и принципов REST), которые:
- Имеют базовый URI
- Поддерживают форматы обмена данными такие как JSON и XML (и, возможно, другие)
- Поддерживают набор HTTP-операций (GET, POST и т.д.)
Вместо того, чтобы думать о вебе в целом как о куче HTML-страниц, подумайте о нём как о том, что больше соответствует MVC-шаблону, который мы обсуждали.
Веб-сайт это что-то, что просто хранит какие-то ресурсы. Когда вы переходите на сайт, вы можете получить эти ресурсы в любом из форматов. Возможно, вы получите их в качестве HTML, возможно в качестве JSON или XML, которые могут быть разными форматами для представления одного и того же.
Некоторые форматы легче парсить, чем другие. К примеру, HTML не очень подходит для парсинга, но XML и JSON подходят хорошо.
Означает ли это, что вы должны изучить полностью новый формат и писать парсер для него в Ruby?
Нет, потому что это как раз то где на помощь приходит HTTParty.
Gem HTTParty
HTTParty это клиент для Restful веб-сервисов.
Представьте браузер. Ваш браузер является клиентом веб-сайта, и чаще всего вы видите HTML-страницы в нём.
Ваш браузер запрашивает что-то с сервера, сервер возвращает это, и браузер это отображает.
Но, опять же, эти данные трудно парсить. Поэтому, если вы хотите использовать их, к примеру, для коммуникации между двумя сайтами и запрашиваете информацию с другого Rails-приложения, вам больше подойдет формат который легко парсить, а не только легко отображать.
HTTParty обеспечивает автоматический парсинг JSON и XML в ваши хэши (или массивы) Ruby.
Пока формат является валидным JSON или XML, HTTParty легко парсит данные в структуры Ruby, и затем вы можете просто использовать их.
Использование HTTParty
Это, на самом деле, довольно просто. Включаете модуль HTTParty в код и вы готовы!
Вы также можете указать:
base_uri
для ваших запросов
default_params
(к примеру, ключ API)
format
, чтобы указать в каком формате данные
Плагин JSONView
Для браузеров (Chrome, Firefox и возможно других) есть плагин JSONView, который позволяет удобно просматривать файлы JSON.
С этим плагином JSON API будет выглядеть примерно так:

В общем, рекомендую установить.
Пример URL в API
Пример URL в API:

Через ?
указываются параметры, второй параметр (как и следующие) указывается через &
.
В данном примере мы запрашиваем контент определенного изображения с параметрами высоты и ширины не ниже заданных размеров.
В итоге
HTTParty позволяет чрезвычайно просто интегрировать Restful-сервисы, конвертируя их в хэши Ruby.
Поддерживаются форматы JSON и XML.