[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
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
count
vànext
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
trongCreaturesListView
. - 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ớicreatures.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ínhresults
là một mảng cácResult
. - Trong
getData
, ta sẽ gán phầnresults
củaReturned
cho thuộc tínhcreaturesArray
. - Để
list
có thể hoạt động, cần đảm bảo structResult
tuân theo protocolhashable
.
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!