Коли клас Ruby включає HTTParty, розмістіть проксі на цьому класі й робіть запити через нього:

class Reports
  include HTTParty
  http_proxy 'proxy.example', 8080
end

response = Reports.get('https://reports.example/monthly')

Приклад припускає, що HTTParty завантажено. Метод проксі приймає ім'я хоста й цілочисельний порт, а також необов'язкові аргументи імені користувача й пароля. Для дозволеного тесту public-API без облікового запису проксі використайте HTTP-кандидата зі списку HTTP-проксі для хоста й порту. Залиште URL призначення на get.

Усередині методу екземпляра Reports використовуйте self.class.get(...), коли мета — викликати саме цей налаштований метод класу. Виклик модуля HTTParty верхнього рівня натомість може обійти обгортку, чиї значення за замовчуванням ви щойно налаштували.

Те саме розрізнення важливе, коли кілька обгорток API ділять одну програму. Дайте кожній її задуману політику проксі замість того, щоб глобально змінювати HTTParty::Basement, аби виправити один клас.

HTTParty також надає параметри проксі для кожного запиту, як-от http_proxyaddr і http_proxyport. Використовуйте їх, коли маршрут справді є частиною одного запиту. Значення класу за замовчуванням читаються простіше, коли кожна операція Reports має йти тим самим шляхом.

Схожі статті