C#과 .NET에서 환율 사용하기
IHttpClientFactory, decimal 환율, 취소 처리, 유한한 타임아웃, 출처를 인식하는 응답 처리로 타입이 지정된 .NET FX 클라이언트를 만듭니다.
exchangerate.dev용 타입이 지정된 HttpClient를 하나 등록하고, API 키는 설정에서 주입하며, 환율 값을 decimal로 역직렬화하세요. 느린 업스트림 요청이 애플리케이션 요청을 무기한 붙잡지 않도록 취소와 타임아웃 동작을 명시적으로 설정하세요.
Key points
연결 재사용, DNS 갱신, 로깅, 중앙 클라이언트 설정을 위해
IHttpClientFactory를 사용하세요.환율을
decimal로 역직렬화하고, API의 신선도 메타데이터를 함께 보존하세요.모든 요청에
CancellationToken을 전달하고 유한한 클라이언트 타임아웃을 설정하세요.디코딩 전에
EnsureSuccessStatusCode()를 호출해 실패한 응답이 유효한 환율 데이터처럼 보이지 않도록 하세요.타입이 지정된 HttpClient 등록하기
등록 부분이 기본 URL, bearer 토큰, 타임아웃을 관리합니다. 타입이 지정된 클라이언트는 응답 계약을 소유하고, 호출자의 취소를 네트워크 요청으로 전달합니다.
요청에서 취소를 전달하기
성공한 관측값만 캐시하기
공유 캐시는 반복 읽기를 흡수할 수 있지만, 캐시 항목에는 Rates["EUR"]뿐 아니라 전체 관측값을 담아야 합니다. Source, MarketSession, DataUpdatedAt을 보존하면 호출자가 실시간 거래일 갱신과 일별 또는 휴장 값을 구분할 수 있습니다.
재시도 정책은 좁게 유지하기
짧은 네트워크 실패나 선택된 5xx 응답만 짧은 백오프로 재시도하세요. 401을 일시적인 것처럼 재시도하지 말고, 429 이후에 재시도가 몰리지 않도록 하세요. 캐시와 요청 병합이 먼저 중복 트래픽을 제거해야 합니다.
- 타입이 지정된 클라이언트 등록을 하나만 유지하세요.
- 환율과 금액에는 decimal을 사용하세요.
- 전체 호출 체인에 취소를 전달하세요.
- 역직렬화 전에 성공하지 않은 HTTP 응답을 거부하세요.
MM
exchangerate.dev
FX 데이터를 다루는 개발자를 위한 연동 가이드.