[dart] Dart에서 Fetch API 활용하기

Dart는 웹 애플리케이션에서 HTTP 요청을 보내고 응답을 받기 위해 Fetch API를 활용할 수 있습니다. Fetch API는 네트워크 요청을 생성하고 다루는 강력한 웹 표준이며, Dart에서도 쉽게 사용할 수 있습니다.

이번 포스트에서는 Dart에서 Fetch API를 활용하여 HTTP 요청을 보내고 응답을 처리하는 방법에 대해 알아보겠습니다.

1. HTTP 요청 보내기

Dart에서 HTTP 요청을 보내기 위해서는 dart:io 라이브러리의 HttpClient 클래스를 사용할 수 있습니다. 다음은 간단한 GET 요청을 보내는 예제 코드입니다.

import 'dart:io';
import 'dart:convert';

void main() async {
  var httpClient = HttpClient();
  var request = await httpClient.getUrl(Uri.parse('https://api.example.com/data'));
  var response = await request.close();
  
  if (response.statusCode == 200) {
    var responseBody = await response.transform(utf8.decoder).join();
    print(responseBody);
  } else {
    print('Failed to fetch data: ${response.statusCode}');
  }
}

위 코드에서는 HttpClient를 사용하여 GET 요청을 생성하고, close 메서드를 호출하여 요청을 완료합니다. 응답을 받은 후에는 상태 코드를 확인하고 응답 본문을 읽어옵니다.

2. JSON 데이터 처리하기

만약 받아온 응답이 JSON 형식이라면, dart:convert 라이브러리를 사용하여 JSON 데이터를 쉽게 처리할 수 있습니다. 다음은 JSON 응답을 처리하는 예제 코드입니다.

// 앞 부분은 이전과 동일

  if (response.statusCode == 200) {
    var responseBody = await response.transform(utf8.decoder).join();
    var jsonData = json.decode(responseBody);
    print(jsonData['message']);
  } else {
    print('Failed to fetch data: ${response.statusCode}');
  }
}

위 코드에서는 받아온 JSON 응답을 json.decode 메서드를 통해 맵 형태로 변환한 후, 필요한 데이터를 추출하여 사용할 수 있습니다.

Dart를 사용하여 Fetch API를 활용하는 방법에 대해 간략히 살펴보았습니다. HTTP 요청을 보내고 응답을 처리하는 것 외에도, Fetch API를 사용하여 더 다양한 기능을 구현할 수 있으니 참고하시기 바랍니다.

더 자세한 내용은 Dart 공식 문서를 참조하세요.