🌐
REST API 연동
http/dio로 서버와 데이터 통신하기
Flutter에서 서버 데이터를 가져오려면 http(경량) 또는 dio(고기능) 패키지를 사용합니다.
JSON 응답을 Dart 클래스로 변환할 때 fromJson()/toJson() 패턴을 사용하며, json_serializable + build_runner로 자동 생성할 수 있습니다.
FutureBuilder 또는 상태 관리 라이브러리(Riverpod의 FutureProvider 등)로 로딩/에러/성공 상태를 관리합니다.
구현 순서
1
http 또는 dio 패키지 추가 + API 모델 클래스 정의
2
fromJson()/toJson() 메서드 작성 (또는 json_serializable 사용)
3
Repository 패턴으로 API 호출 로직 분리
4
FutureBuilder 또는 Riverpod FutureProvider로 비동기 UI 구현
장점
- ✓ dio는 인터셉터로 토큰 갱신/에러 핸들링 중앙화 가능
- ✓ json_serializable로 직렬화 코드 자동 생성
단점
- ✗ build_runner 코드 생성이 대형 프로젝트에서 느릴 수 있음
- ✗ 에러 핸들링 전략을 미리 설계하지 않으면 혼란
사용 사례
SNS 피드 목록 로딩
EC 상품 검색 및 상세 조회
참고 자료
- 🔗 dio 패키지