반응형
이제 서버로부터 받는 이 JSON 형식의 데이터를 Dart와 Flutter에서 쓸 수 있는 형태인 class 형태로 변경해야 한다.
웹툰 하나하나를 클래스로 만들어서 리스트로 변환하는 것이 우리의 미션이다.
그리고 response.body 의 형태가 String이기 때문에 우리는 JSON 형태로 Decode 해주어야 한다.
Dart에서 생성자 만드는 법을 다시 기억해야 할 때......
webtoon.dart
class WebtoonModel {
final String title, thumb, id;
WebtoonModel.fromJson(Map<String, dynamic> json)
: title = json['title'],
thumb = json['thumb'],
id = json['id'];
}
api_service.dart
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:toonflix/models/webtoon.dart';
class ApiService {
final String baseUrl = "https://webtoon-crawler.nomadcoders.workers.dev";
final String today = "today";
Future<List<WebtoonModel>> getTodaysToon() async {
List<WebtoonModel> webtoonInstances = [];
final url = Uri.parse('$baseUrl/$today');
final response = await http.get(url);
if (response.statusCode == 200) {
final List<dynamic> webtoons = jsonDecode(response.body);
for (var webtoon in webtoons) {
webtoonInstances.add(WebtoonModel.fromJson(webtoon));
}
return webtoonInstances;
}
throw Error();
}
}
반응형
'Flutter > Flutter로 웹툰 앱 만들기' 카테고리의 다른 글
[노마드코더: Flutter 로 웹툰 앱 만들기] #6.5 waitForWebToons (0) | 2022.12.13 |
---|---|
[노마드코더: Flutter 로 웹툰 앱 만들기] #6.4 Recap (0) | 2022.12.13 |
[노마드코더: Flutter 로 웹툰 앱 만들기] #6.2 Data Fetching (0) | 2022.12.03 |
[노마드코더: Flutter 로 웹툰 앱 만들기] #6.1 AppBar (0) | 2022.12.03 |
[노마드코더: Flutter 로 웹툰 앱 만들기] #6.0 Introduction (0) | 2022.12.02 |