cbr-client

Async java client for fx rates from Central Bank of Russia (CBR)

View project on GitHub

Build

Central Bank of Russia (CBR) Client

Java client based on new HttpClient (java 11+)

Usage

Simple client creation

CbrApi client = CbrClient.api();

Complex client configuration

var client = cbrClient()
    .useClient(HttpClient.newBuilder()
        .followRedirects(HttpClient.Redirect.ALWAYS)
        .priority(10)
        .connectTimeout(Duration.ofMillis(500))
        .executor(Executors.newSingleThreadExecutor())
        .build())
    .with(CircuitBreaker.ofDefaults())
    .with(RateLimiter.smoothBuilder(Duration.ofMillis(100))
        .build())
    .with(RetryPolicy.ofDefaults())
    .with(Timeout.of(Duration.ofMillis(400)))
    .rootPath("https://www.cbr.ru/scripts") -- just to use stub in tests
    .build();

Get latest rates

var client = CbrClient.api();
int rates = client.rates();

Get supported currencies

var client = CbrClient.api();
var ccurrencies = client.supportedCurrencies();

Dependencies

  • Java 11+
  • FailSafe
  • Slf4j api
  • Jaxb (api)
  • WireMock (tests)
  • Junit5 (tests)

Author

Anton Batiaev anton@batiaev.com