🌐

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 상품 검색 및 상세 조회

참고 자료