반응형
api_service.dart
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:toonflix/models/webtoon.dart';
import 'package:toonflix/models/webtoon_detail_model.dart';
import 'package:toonflix/models/webtoon_episode_model.dart';
class ApiService {
static const String baseUrl =
"https://webtoon-crawler.nomadcoders.workers.dev";
static const String today = "today";
static 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();
}
static Future<webtoonDetailModel> getToonById(String id) async {
final url = Uri.parse("$baseUrl/$id");
final response = await http.get(url);
if (response == 200) {
final webtoon = jsonDecode(response.body);
webtoonDetailModel.fromJson(webtoon);
}
throw Error();
}
static Future<List<webtoonDetailModel>> getLatestEpisodesById(
String id) async {
List<WebtoonEpisodeModel> episodesInstances = [];
final url = Uri.parse("$baseUrl/$id/episodes");
final response = await http.get(url);
if (response == 200) {
final episodes = jsonDecode(response.body);
for (var episode in episodes) {
episodesInstances
.add(WebtoonEpisodeModel.fromJson(episode)); //list여야 하기 때문에
}
}
throw Error();
}
}
fetch the episode
반응형
'Flutter > Flutter로 웹툰 앱 만들기' 카테고리의 다른 글
[노마드코더: Flutter 로 웹툰 앱 만들기] #6.14 Detail Info (0) | 2022.12.20 |
---|---|
[노마드코더: Flutter 로 웹툰 앱 만들기] #6.13 Futures (0) | 2022.12.14 |
[노마드코더: Flutter 로 웹툰 앱 만들기] #6.11 Recap (0) | 2022.12.14 |
[노마드코더: Flutter 로 웹툰 앱 만들기] #6.10 Hero (0) | 2022.12.14 |
[노마드코더: Flutter 로 웹툰 앱 만들기] #6.9 Detail Screen (0) | 2022.12.14 |