Как сделать HTTP запрос в Ruby on Rails?

Описание:
Имеем форму ввода с одним текстовым полем. Введя в поле некий номер, нажимаем submit.

Должен выполниться http запрос на внешний api сервис. Где запрашиваются данные по фильтру, написанному в поле ввода.

Для этой реализации нужно:

  1. Метод search в контроллере (это будет отображение страницы с полем ввода). Submit ведет на метод searching в том же контроллере.

Вопрос:
Как мне сделать вызов внешнего API?
А именно:

  1. Где создать файл с классом и методами для вызова API и парсинга?
  2. Как файл подключить в контроллер для создания объекта и вызова метода?
  3. Получив данные, как их передать в представление?

Ответы (1 шт):

Автор решения: Василиса

Обычно под это пишется ServiceObject - простой рубишный класс с методом call, который на вход принимает данные из формы, идёт с ними в апишку, парсит ответ и что-то нужное возвращает. Эти все действия аккуратно раскладываются по приватным методам, конечно же.

Соответственно, в контроллере просто вызываете MySearchApiClient.new.call(query: params[:query]), результат складываете в @переменную и пользуете её во вьюшке

→ Ссылка