http get request & podoを理解してください.


すべてのアプリケーションでは、動的に完全に対話的には、バックエンドのHTTPリクエストを使用して、あなたがすぐに受信データを使用することができます要求を処理した後に通信する必要がありますが、それを管理し、1つを処理するために簡単にPODO(プレーンオールドダートオブジェクト)にマップする必要があります、それはあなたがDARTオブジェクトに受信した応答を逆シリアル化する方法です.それはあなたのアプリやバックエンド内のデータを操作するには、簡単に作成、更新、削除、または単に読書によって、このように簡単になります.
この記事では、プロセスの2つの部分を通して、HTTPリクエストを使用してパックエンドと通信し、受信データをDARTモデルにマッピングします.

HTTPリクエストを使用したバックエンドとの通信


アプリケーションは頻繁にポスト、get、および他のHTTPリクエストを実行する必要があります.
最初のステップは、HTTPパッケージをPubspecに追加することです.YAMLファイル.
dependencies:
  http: ^0.13.3
Pubspecの各編集後、以下のコマンドフラッタを実行します.YAMLは、ダウンロードしてファイル内のすべての依存関係を取得します.
$flutter pub get
DARTファイルでHTTPパッケージをインポートする
import 'package:http/http.dart';
また、JSONレスポンスをデコードするためにそれを必要とするので
import 'dart:convert';
この記事での私たちの例では、エンドポイントを使用してテストとプロトタイピングのための無料の偽APIをJsonplaceholder APIを使用するつもりですhttps://jsonplaceholder.typicode.com/todos それは偽のtodosのリストを返します.
では、どのようにこのデータを受け取るのですか?
GETリクエストを使用して、以下のコードスニペットのようにレスポンスをデコードします.
最初の行はGETリクエストを使って応答を受信します.2行目は結果をデコードし、リストの形式でキャストする
var response = await get(Uri.parse("https://jsonplaceholder.typicode.com/todos"));
    final List<dynamic> bodyData = json.decode(response.body);
ウーホー!この手順まで、私たちは、サーバーからの応答を受信し、我々のデータは、我々のアプリの中で休んでいる、私たちはそれを歓迎する必要がありますし、それに良いです)
次のステップは、ポッドにこの結果を逆シリアル化し、この手順は、我々はDARTモデルとして我々の受信データに対処するのに役立ちます!

ポッド!


どのようなポッドとはなぜそれを使用する?
JSONをデコードし、アプリケーションで逆シリアル化されたデータを表示するナイーブアプローチは、すべてのオブジェクト(それぞれのデータ型を持つ)のクラスがJSONのキーと密接に似ているクラスであり、オブジェクトが値に似ているPODO(plain old dart object)アプローチを介しています.
どのようにそれを実装するには?
まず、インストラクターでクラスを作ります
別のDARTファイルでは、クラスが受信したデータを表す必要があります.
私たちの例では、これは私たちの受信データの構造であり、シンプルで、ネストしていません.

だから今クラスに次を追加
class ToDoModel {
  int userId;
  int id;
  String title;
  bool completed;

  ToDoModel(
      {required this.userId,
        required this.id,
        required this.title,
        required this.completed
      });
}
次に、Fromjsonメソッドを作成します.このメソッドは、受信したJSON構造データの名前でメソッド内の名前を間違わないように注意してください
factory ToDoModel.fromJson(Map<String, dynamic> data){
    return ToDoModel(
        userId: data["userId"],
        id : data["id"],
        title: data["title"],
        completed: data["completed"]
    );
最後のステップは、データを受信した後にこのメソッドを呼び出す必要があります.受信したデータがリストであるため、このリストをループします.各リストをDARTオブジェクトに変換してDART
  bodyData.forEach((toDo) {
      ToDoModel task = ToDoModel.fromJson(toDo);
      myToDosParsed.add(task);
    });
今我々のデータは完全に我々のアプリで使用される準備ができて休んでいる!

概要


そこで、この記事では、HTTP GETリクエストを使用してバックエンドと通信し、受信データをマッピングし、ListViewのリストをすべて表示する小さなアプリケーションを作ります.ビルダーウィジェット.
今、あなたは同じことを行うか、しようとしてクローニングして、このアプリを操作し続けるApp Repo .
時々、あなたのJSON結果のデータ構造に基づいて、サーバーから受け取られた応答を投げることになるとき、少しずつ、ステップが変わるかもしれないことに留意してください.FireBaseを使用している場合は、リスト、マップ、DOCスナップショットのように.など
プロセスの詳細については、または他のHTTPリクエストを使用してください.
私は私の個人的なウェブサイトのブログで記事にいくつかのセクションを追加しましたThe full article

ノート

  • DARTオブジェクトをJSON ONEに変換するプロセスはJSON符号化と呼ばれ、JSONオブジェクトをDART 1に変換する逆プロセスをデコードと呼ぶ.
  • どんなバックエンドででも、上記の指示は、異なったものだけがDARTモデルに受信データの復号化であるので、時々、あなたが受けたデータに従ってよりキャスティングをする必要があるかもしれません.
  • 記事のフォーカスは、受信されたデータをPODOに変換するプロセスにありますポスト、削除、プットは、それぞれのポッド操作で議論されていませんでした.
  • 更なる読書と資源


  • HTTP Package
  • jsonplaceholder API
  • Parsing Json Article

  • Parsing Json Article