プロキシはHTTPartyクラスに置く
HTTPartyクラスのプロキシ設定は、リクエストを送るクラスメソッドに結びつけたままにします。
RubyクラスがHTTPartyをincludeするときは、プロキシをそのクラスに置き、そのクラス経由でリクエストを送ります。
class Reports
include HTTParty
http_proxy 'proxy.example', 8080
end
response = Reports.get('https://reports.example/monthly')この例はHTTPartyが読み込まれていることを前提としています。proxyメソッドはホスト名と整数のポートを受け取り、ユーザー名とパスワードの引数は省略できます。プロキシ用アカウントなしで許可されたpublic-APIのテストを行うには、ホストとポートにHTTPプロキシ一覧のHTTP候補を使います。宛先URLはgetに載せたままにします。
Reportsのインスタンスメソッド内で、設定済みのそのクラスメソッドを呼ぶ意図があるときはself.class.get(...)を使います。代わりに最上位のHTTPartyモジュールを呼ぶと、たった今デフォルトを設定したラッパーを迂回してしまうことがあります。
複数のAPIラッパーが1つのアプリケーションを共有する場合も、同じ区別が重要です。1つのクラスを直すためにHTTParty::Basementをグローバルに変えるのではなく、それぞれに意図したプロキシポリシーを与えます。
HTTPartyはhttp_proxyaddrやhttp_proxyportのようなリクエストごとのプロキシオプションも公開しています。経路が本当に1つのリクエストの一部であるときにそれらを使います。すべてのReports操作が同じ経路をたどるべきなら、クラスのデフォルトのほうが読みやすくなります。