[flutter] dio_retry 패키지를 사용하여 비동기 API 호출 처리하기

이번 포스트에서는 Flutter 앱에서 비동기 API 호출을 처리하는 방법에 대해 알아보겠습니다. 특히, dio_retry 라이브러리를 사용하여 API 호출 중에 발생하는 오류를 처리하는 방법을 살펴볼 것입니다.

dio_retry 패키지란?

dio_retry는 Flutter에서 HTTP 요청을 보내는 데 사용되는 dio 패키지의 retry 기능을 제공하는 라이브러리입니다. 이 패키지를 사용하면 HTTP 요청 중에 발생하는 오류를 처리하고, 요청을 재시도할 수 있습니다.

dio_retry 패키지 설치

먼저, dio_retry 패키지를 설치해야 합니다. pubspec.yaml 파일에 아래와 같이 dio_retry 패키지를 추가하세요.

dependencies:
  dio: ^4.0.0
  dio_retry: ^3.0.0
  retry: ^3.0.0

그리고 이후에 패키지를 업데이트해 주세요.

flutter pub get

dio_retry를 사용한 API 호출 예제

이제 dio_retry를 사용하여 API 호출을 처리하는 예제를 살펴보겠습니다.

import 'package:dio/dio.dart';
import 'package:dio_retry/dio_retry.dart';

void main() async {
  const baseUrl = 'https://api.example.com';
  final dio = Dio(BaseOptions(baseUrl: baseUrl));
  
  dio.interceptors.add(
    RetryInterceptor(
      dio: dio,
      options: const RetryOptions(
        retries: 3,
        retryInterval: const Duration(seconds: 1),
      ),
    ),
  );

  try {
    final response = await dio.get('/api/data');
    print(response.data);
  } catch (e) {
    print('Error occurred: $e');
  }
}

위의 예제에서, 우리는 dio_retry를 사용하여 기본 URL이 https://api.example.com인 API를 호출하는 방법을 살펴보았습니다. 만약 오류가 발생하면, dio_retry가 자동으로 요청을 다시 시도할 것입니다.

이렇게하여, dio_retry를 사용하면 네트워크 요청 중에 발생하는 오류를 효율적으로 처리할 수 있습니다.

이제 dio_retry를 사용하여 Flutter 앱에서 비동기 API 호출을 처리하는 방법에 대해 알아보았습니다. dio_retry의 많은 기능을 더 살펴보고 싶다면, dio_retry 공식 문서를 확인해보세요.