[flutter] 플러터 GET 요청에 사용자의 읽은 책 목록을 전달하는 방법은 무엇인가요?
플러터를 사용하여 GET 요청을 보내고 읽은 책 목록을 전달하는 방법을 알아보겠습니다.
- 먼저
http
패키지를 설치해야 합니다.pubspec.yaml
파일에 아래와 같이 추가해주세요:
dependencies:
http: ^0.13.3
http
패키지를 가져옵니다:
import 'package:http/http.dart' as http;
- 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');
}
}
- 위 함수에서 사용되는
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'],
);
}
}
- 위에서 작성한 함수를 호출하여 사용자의 읽은 책 목록을 얻을 수 있습니다:
Future<void> getReadBooks() async {
try {
final List<Book> readBooks = await fetchReadBooks();
// 읽은 책 목록을 출력하거나 원하는 처리를 수행할 수 있습니다.
print('읽은 책 목록: $readBooks');
} catch (e) {
print('읽은 책 목록을 가져오는 중 오류가 발생했습니다: $e');
}
}
위 방법을 사용하여 플러터 GET 요청에 사용자의 읽은 책 목록을 전달할 수 있습니다. 이 코드는 가상의 API 엔드포인트와 JSON 데이터 구조를 기반으로 작성되었으므로 실제 API 엔드포인트 및 데이터 구조에 맞게 수정해야 합니다.
참고 자료: