ApiClient constructor

ApiClient({
  1. Duration delayBetweenRequests = const Duration(milliseconds: 10000),
  2. int retries = 3,
})

Implementation

ApiClient({
  Duration delayBetweenRequests = const Duration(milliseconds: 10000),
  int retries = 3,
}) : dio = Dio(
        BaseOptions(
          connectTimeout: const Duration(milliseconds: 10000),
          receiveTimeout: const Duration(milliseconds: 10000),
          responseType: ResponseType.json,
        ),
      ) {
  dio.interceptors.addAll([
    RetryInterceptor(
      dio: dio,
      retries: retries,
      retryDelays: List.generate(
        retries,
        (retryCount) => Duration(seconds: 2 * (retryCount + 1)),
      ),
    ),
    RateLimitingInterceptor(delayBetweenRequests),
  ]);
}