본문 바로가기

Flutter-플러터/플러터 공부

RestAPI - http 패키지

반응형

자동화 프로그램 = REST API =url =
flutter 는 url에 접속해서 json 코드를 읽어온다

 

 

 

body= json 데이터

json 데이터의 구조는 String 
flutter에서의 Map과는 구조가 다름 

내가 원하는 데이터만 뽑고 싶을 때 
 var map = jsonDecode(response.body); // 데이터 분해 
    var userId = map['userId'];
    var id = map['id'];
    var title = map['title'];
    var completed = map['completed'];

 

Todo 클래스 

class Todo {
  int userId;
  int id;
  String title;
  bool completed;

  Todo({this.userId = 0, this.id = 0, this.title = '', this.completed = false});

  factory Todo.fromJson(Map<String, dynamic> map) {
    return Todo(
      userId: map['userId'],
      id: map['id'],
      title: map['title'],
      completed: map['completed'],
    );
  }
}

 

TodoProvider

 

class TodoMolel extends ChangeNotifier {
  Todo detailTodo = Todo();

  void setTodoFromServer() async {
    var response = await http
        .get(Uri.parse('https://jsonplaceholder.typicode.com/todos/3'));
    print(response.body);
    var map = jsonDecode(response.body); // 데이터 분해

    detailTodo = Todo.fromJson(map);

    notifyListeners();
  }
}

 

어플 초기에 데이터 받아오기 

 

 @override
  void initState() {
    super.initState();

    // todo투두 데이터 가져오기a
    Provider.of<TodoMolel>(context, listen: false).setTodoFromServer();
  }
반응형