Как сделать HTTP запрос в Ruby on Rails?
Описание:
Имеем форму ввода с одним текстовым полем.
Введя в поле некий номер, нажимаем submit.
Должен выполниться http запрос на внешний api сервис. Где запрашиваются данные по фильтру, написанному в поле ввода.
Для этой реализации нужно:
- Метод
searchв контроллере (это будет отображение страницы с полем ввода).Submitведет на методsearchingв том же контроллере.
Вопрос:
Как мне сделать вызов внешнего API?
А именно:
- Где создать файл с классом и методами для вызова API и парсинга?
- Как файл подключить в контроллер для создания объекта и вызова метода?
- Получив данные, как их передать в представление?
Ответы (1 шт):
Обычно под это пишется ServiceObject - простой рубишный класс с методом call, который на вход принимает данные из формы, идёт с ними в апишку, парсит ответ и что-то нужное возвращает. Эти все действия аккуратно раскладываются по приватным методам, конечно же.
Соответственно, в контроллере просто вызываете MySearchApiClient.new.call(query: params[:query]), результат складываете в @переменную и пользуете её во вьюшке