반응형
API를 사용하기 위해 간단하게 모델을 만들고
class Field {
late String col1;
late String col2;
late String col3;
late String col4;
late String col5;
Field(
{required this.col1,
required this.col2,
required this.col3,
required this.col4,
required this.col5,});
Field.formMap(Map<String, dynamic>? map) {
col1 = map?['col1'] ?? '';
col2 = map?['col2'] ?? '';
col3 = map?['col3'] ?? '';
col4 = map?['col4'] ?? '';
col5 = map?['col5'] ?? '';
}
}
데이터를 받아줄 Provider를 선언 한다.
class NewsProviders {
Future<List<Field>> getNews(String url) async {
String path = 'URL 기초 경로';
List<Field> field = [];
Uri uri = Uri.parse(path + url);
final response = await http.get(uri);
if (response.statusCode == 200) {
if (jsonDecode(response.body)['Result'].toString() == 'SUCC') {
field = jsonDecode(response.body)['Msg'].map<Field>((article) {
return Field.formMap(article);
}).toList();
}
}
return field;
}
}
API데이터를 받아오기 위해서는
Provider를 선언 하고 리스트로 받는다
//var field = <Field>[].obs;
List field = [];
NewsProviders newsProviders = NewsProviders();
void iniData() async {
field = await newsProviders.getNews("프로시저 '$변수','$변수','$변수','$변수','$변수','$변수' ");
}
List 선언 방법에는 2가지가 있는데
- var field = <Field>[].obs;
- List field = [];
와 같은 2가지 방법이 있다.
이 두가지 방법은 사용 방법은 같다.
그러나 중요한 차이가 있다.
- var field = <Field>[].obs;
와 같은 방법 사용 시 Field에 선언된 변수만 받아 올 수 있다.
그렇지만 자동완성 기능을 사용 할 수 있다
- List field = [];
의 방법을 사용 하면 변수의 타입이 dynamic 으로 설정이 된다
반응형
'Flutter & Dart' 카테고리의 다른 글
Flutter & Dart 플러터에서 API 호출하기: http vs dio 비교 가이드 (0) | 2023.08.18 |
---|---|
Flutter & Dart 플러터 바텀 네비게이션 구현하기: 자세한 가이드 (0) | 2023.08.18 |
Flutter & Dart 플러터에서 인앱 결제 구현하기: in_app_purchase 패키지 활용 가이드 (0) | 2023.08.18 |
Flutter & Dart 카카오 지오코딩 사용 (0) | 2023.02.14 |
Flutter & Dart 에서 정규표현식(Regular Expression) 사용하기 (0) | 2023.02.10 |