Как вы уже догадались, лучшим местом для вашего API-клиента является модель.Используя такую библиотеку, как HTTParty или RestClient , эта задача довольно проста.Контроллер должен делать не больше, чем запрашивать данные, необходимые для представления.
Вот пример кода с использованием HTTParty.Поскольку у меня нет деталей, вам придется немного его изменить.Это будет модель:
class JonnyService
include HTTParty
base_uri 'http://localhost:3000'
end
Тогда вы можете использовать это так.Обратите внимание, что для дополнительного удобства было бы лучше перенести часть этой логики (например, создание параметров post для каждого метода службы) в модель как методы класса.
options = {
:body => {
:SoftwareAPI => {
:Method => 'ListUsers',
:APIKey => '123',
:Account => {
:UserName => 'admin',
:Password => 'password'
}
}
}
}
response = JonnyService.post('/service.xml', options)
puts response.inspect
#response can be treated as a data structure:
puts response['ResponseId']