C#と.NETで為替レートを取得する
IHttpClientFactory、decimal、キャンセル、有限のタイムアウト、情報源を保つ応答処理で型付き.NETクライアントを作る。
exchangerate.dev用の型付きHttpClientを登録し、設定からAPIキーを注入し、レートをdecimalへ変換する。キャンセルとタイムアウトを明示して、遅い上流呼び出しがアプリケーション要求を長時間保持しないようにする。
Key points
接続再利用と一元設定に
IHttpClientFactoryを使う。レートを
decimalへ変換し、鮮度フィールドも保持する。すべての呼び出しに
CancellationTokenを渡し、タイムアウトを設定する。デコード前に
EnsureSuccessStatusCode()を呼ぶ。型付きHttpClientを登録する
登録がベースURL、bearer token、タイムアウトを管理する。型付きクライアントは応答契約を持ち、呼び出し元のキャンセルをネットワーク要求へ渡す。
要求からキャンセルを渡す
成功した観測だけをキャッシュする
共有キャッシュにはRates["EUR"]だけでなく完全な観測を保存する。Source、MarketSession、DataUpdatedAtがあれば、取引日のライブ更新と日次・閉場値を区別できる。
再試行の対象を絞る
短いネットワーク障害や選択した5xxだけを小さなバックオフで再試行する。401を一時障害として扱わず、429後に再試行の集中を作らない。
- 型付きクライアント登録を1つにする。
- レートと金額にdecimalを使う。
- 呼び出し全体にキャンセルを渡す。
- 非成功応答を変換前に拒否する。
MM
exchangerate.dev
FXデータを扱う開発者向けの統合ガイド。