[flutter] 플러터 GET 요청에 사용자의 읽은 책 목록을 전달하는 방법은 무엇인가요?

플러터를 사용하여 GET 요청을 보내고 읽은 책 목록을 전달하는 방법을 알아보겠습니다.

  1. 먼저 http 패키지를 설치해야 합니다. pubspec.yaml 파일에 아래와 같이 추가해주세요:
dependencies:
  http: ^0.13.3
  1. http 패키지를 가져옵니다:
import 'package:http/http.dart' as http;
  1. GET 요청을 보내고 사용자의 읽은 책 목록을 받아오는 함수를 작성합니다:
Future<List<Book>> fetchReadBooks() async {
  final response = await http.get(Uri.parse('https://api.example.com/books/read'));

  if (response.statusCode == 200) {
    // API 응답을 JSON으로 변환합니다.
    final jsonBody = jsonDecode(response.body);

    // JSON 데이터에서 책 정보를 추출합니다.
    final List<dynamic> bookDataList = jsonBody['books'];

    // 책 정보를 Book 객체로 변환합니다.
    final List<Book> readBooks = bookDataList.map((bookData) => Book.fromJson(bookData)).toList();

    return readBooks;
  } else {
    throw Exception('Failed to fetch read books');
  }
}
  1. 위 함수에서 사용되는 Book 클래스를 작성하고, JSON 데이터를 이용하여 Book 객체로 변환하는 fromJson 팩토리 메서드를 구현합니다:
class Book {
  final String title;
  final String author;

  Book({required this.title, required this.author});

  factory Book.fromJson(Map<String, dynamic> json) {
    return Book(
      title: json['title'],
      author: json['author'],
    );
  }
}
  1. 위에서 작성한 함수를 호출하여 사용자의 읽은 책 목록을 얻을 수 있습니다:
Future<void> getReadBooks() async {
  try {
    final List<Book> readBooks = await fetchReadBooks();
    // 읽은 책 목록을 출력하거나 원하는 처리를 수행할 수 있습니다.
    print('읽은 책 목록: $readBooks');
  } catch (e) {
    print('읽은 책 목록을 가져오는 중 오류가 발생했습니다: $e');
  }
}

위 방법을 사용하여 플러터 GET 요청에 사용자의 읽은 책 목록을 전달할 수 있습니다. 이 코드는 가상의 API 엔드포인트와 JSON 데이터 구조를 기반으로 작성되었으므로 실제 API 엔드포인트 및 데이터 구조에 맞게 수정해야 합니다.

참고 자료: