[Video Summary] Ch. 6.3 API call with URLSession and JSON parsing with SwiftUI - CatchEmAll app (2024)

Mô tả nhanh

Video này hướng dẫn cách sử dụng URLSession và JSON parsing của Swift để gọi API của Pokemon và hiển thị danh sách các Pokemon.

Video

Click vào hình dưới để mở:

Mô tả chi tiết

Video này hướng dẫn cách sử dụng URLSession và JSON parsing của Swift để gọi API của Pokemon và hiển thị danh sách các Pokemon.

Đầu tiên, ta tạo một class Creatures để xử lý việc gọi API. Trong class này, sẽ có một struct Returned để chứa dữ liệu trả về từ API, bao gồm count (số lượng Pokemon) và next (URL trang tiếp theo). Struct này sẽ tuân thủ Codable để có thể chuyển đổi dữ liệu JSON.

Tiếp theo là hàm getData (đánh dấu là async vì đây là một hàm bất đồng bộ) để gọi API và giải mã JSON. Hàm này sẽ:

  • Tạo một URL từ một chuỗi URL.
  • Sử dụng URLSession để lấy dữ liệu từ URL.
  • Giải mã JSON thành struct Returned.
  • In ra countnext từ struct vừa giải mã để kiểm tra.

Trong class Creatures, thêm thuộc tính @Observable để theo dõi sự thay đổi dữ liệu và cập nhật giao diện người dùng theo thời gian thực.

Để hiển thị dữ liệu lên giao diện, ta sẽ:

  • Tạo một đối tượng của class Creatures trong CreaturesListView.
  • Gọi hàm getData khi view xuất hiện bằng modifier .task.
  • Hiển thị danh sách Pokemon trong List với creatures.creaturesArray.

Để lấy được danh sách các Pokemon từ API:

  • Cần thêm một struct Result để chứa thông tin của mỗi Pokemon (name, url).
  • Struct Returned sẽ có thêm thuộc tính results là một mảng các Result.
  • Trong getData, ta sẽ gán phần results của Returned cho thuộc tính creaturesArray.
  • Để list có thể hoạt động, cần đảm bảo struct Result tuân theo protocol hashable.

Cuối cùng, video hướng đẫn cách bỏ comment phần List đã tạo ở các bài hướng dẫn trước và hiển thị danh sách Pokemon lấy được từ API.

<Lời chúc>
Chúc bạn học tập hiệu quả và có những dự án iOS/macOS tuyệt vời!