Quand une classe Ruby inclut HTTParty, placez le proxy sur cette classe et faites passer les requêtes par elle :

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

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

L'exemple suppose qu'HTTParty est chargé. La méthode proxy prend un nom d'hôte et un port entier, avec des arguments facultatifs de nom d'utilisateur et de mot de passe. Pour un test public-API autorisé sans compte proxy, utilisez un candidat HTTP de la liste de proxies HTTP pour l'hôte et le port. Gardez l'URL de destination sur get.

Dans une méthode d'instance de Reports, utilisez self.class.get(...) lorsque l'intention est d'appeler cette méthode de classe configurée. Appeler le module HTTParty de niveau supérieur peut au contraire contourner l'enveloppe dont vous venez de configurer les valeurs par défaut.

La même distinction compte quand plusieurs enveloppes d'API partagent une application. Donnez à chacune sa politique de proxy prévue plutôt que de modifier HTTParty::Basement globalement pour réparer une classe.

HTTParty expose aussi des options de proxy par requête comme http_proxyaddr et http_proxyport. Utilisez-les quand la route fait réellement partie d'une seule requête. Les valeurs par défaut de classe sont plus faciles à lire quand chaque opération de Reports doit suivre le même chemin.

Articles similaires