Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

Milan Dev

#Flutter. Api service: 파라미터를 갖는 메소드 초기화 본문

Flutter

#Flutter. Api service: 파라미터를 갖는 메소드 초기화

jjjuyoa 2023. 12. 25. 13:20

WebtoonDetailModel:

import 'dart:convert';

class WebtoonDetailModel {
final String title, about, genre, age;

WebtoonDetailModel.fromJson(Map<String, dynamic> json)
: title = json['title'],
about = json['about'],
genre = json['genre'],
age = json['age'];
}

응답 받아야 할 데이터의 형태. title, about, genre, age를 받게 된다.

 

getToonById:

static Future<WebtoonDetailModel> getToonById(String id) async {
final url = Uri.parse("$baseUrl/$id");
final response = await http.get(url);
if (response.statusCode == 200) {
final webtoon = jsonDecode(response.body);
return WebtoonDetailModel.fromJson(webtoon);
}
throw Error();
}

api를 호출할 때 사용될 메서드. 파라미터로 id값이 필요하다.(웹툰의 id값 마다 호출하는 정보가 다르기 때문)

호출에 성공하여 응답값을 받으면 WebtoonDetailModel에 json 형태로 반환함.

 

detail_screen(중요!):

webtoon 이라는 변수는 자료형으로 WebtoonDetailModel을 가지고 있는데 이는 화면이 전환될때 바로 값을 불러오는게 아니라 api의 호출이 완료되고 응답값을 받았을 때 응답값을 webtoon 에 저장하고 렌더링 해야한다. 받아온 정보를 즉각 화면에 보여주기 위해 

initState를 사용

 

중요하게 생각할 것은 바로 api를 호출하기 위한 id값이 필요하단 것이다. 플러터에서 파라미터를 갖는 api를 호출하기 위해선 stateful widget을 사용(initState를 사용하기 위해)하여 위와 같은 과정을 거쳐야 한다. 

 

조만간 플러터에 대한 이론적인 부분도 포스팅해야겠다..ㅠ

다음엔 받아온 데이터가 잘 렌더링 되는지 확인해봐야겠다.