[flutter] 플러터와 RESTful API 통신 방법

소개

이번 글에서는 플러터(Flutter) 앱에서 RESTful API와 데이터를 효과적으로 통신하는 방법에 대해 알아보겠습니다. RESTful API는 웹 서비스 간의 통신을 위한 표준 방법 중 하나로, 특정 URL을 통해 데이터를 요청하고 응답받는 형태로 동작합니다.

HTTP 패키지를 이용한 통신

플러터에서 RESTful API와 통신하기 위해서는 HTTP 패키지를 사용할 수 있습니다. HTTP 패키지는 GET, POST, PUT, DELETE 등의 HTTP 요청을 보내고 응답을 받을 수 있는 기능을 제공합니다.

import 'package:http/http.dart' as http;

Future<void> fetchData() async {
  final response = await http.get(Uri.parse('https://api.example.com/data'));
  if (response.statusCode == 200) {
    print('데이터: ${response.body}');
  } else {
    throw Exception('데이터를 불러오는 데 실패했습니다.');
  }
}

위 코드에서는 http 패키지의 get 함수를 이용하여 https://api.example.com/data로 GET 요청을 보내고, 응답을 처리하는 방법을 보여줍니다.

모델 클래스 사용

API에서 받아온 데이터를 다루기 쉽게 하기 위해 모델 클래스를 사용할 수 있습니다. JSON 형식의 응답을 파싱하여 모델 클래스 객체로 변환하는 작업이 필요합니다.

class Post {
  final int userId;
  final int id;
  final String title;
  final String body;

  Post({required this.userId, required this.id, required this.title, required this.body});

  factory Post.fromJson(Map<String, dynamic> json) {
    return Post(
      userId: json['userId'],
      id: json['id'],
      title: json['title'],
      body: json['body'],
    );
  }
}

패키지 사용

플러터에서는 HTTP 패키지 외에도 dio, retrofit과 같은 상위 레벨의 패키지를 사용하여 RESTful API와 통신할 수 있습니다. 이러한 패키지들은 강력한 기능과 편리한 사용성을 제공하여 개발자가 효율적으로 API 통신을 구현할 수 있도록 도와줍니다.

요약

플러터 앱에서 RESTful API와의 효과적인 통신을 위해 HTTP 패키지나 상위 레벨의 패키지들을 적절히 활용하는 것이 중요합니다. JSON 데이터를 모델 클래스로 변환하고, 비동기 통신 작업을 효율적으로 다루는 등의 작업을 통해 안정적이고 확장 가능한 API 통신을 구현할 수 있습니다.

이상으로 플러터와 RESTful API 통신 방법에 대해 알아보았습니다.


참고 자료: