Trong bài viết này tôi sẽ giới thiệu về retrofit trong Flutter và cách sử dụng retrofit Flutter.
Retrofit là gì ?
Trong Android, Retrofit là một HTTP client type-safe cho Android & Java, giúp dễ dàng kết nối đến một dịch vụ REST API trên web bằng cách chuyển đổi API thành Java Interface.
Theo khái niệm chung thì Retrofit là một thư viện dùng để gọi Rest API bằng cách gửi các dynamic header, parameter, print request và response theo cách bảo mật ( secured way).
Cách sử dụng Retrofit trong Flutter
Hãy tạo một project mới để sử dụng retrofit Flutter !
+ Tích hợp thư viện
Trong file : pubspec.yaml, thêm các thư viện package : retrofit, dio, logger, retrofit_generator, build_runner, json_annotation, json_serializable ; khai báo các thư viện như hình dưới :
+ Tạo các file
+ Tạo package : services, trong package tạo file : post_api_service.dart có nội dụng như bên dưới :
bạn thấy báo rất nhiều lỗi ?
Đừng quá lo lắng, chạy dòng lệnh trong mục terminal : flutter pub run build_runner build
Trong quá trình chạy bạn thấy báo lỗi : Missing “part ‘post_api_service.g.dart’;”. ?
Thêm khai báo : part ‘post_api_service.g.dart và tiếp tục chạy tiếp dòng lệnh trên : flutter pub run build_runner build
Khi đó file post_api_service.g.dart sẽ được tạo ra
Nói thêm về: Chuyển đổi JSON format sang Dart file
Có hai cách dùng đển chuyển Json format sang dart file. Những source trong mục này , chỉ để dùng diễn giải không sử dụng trong project.
Cách 1: Manual Serialization
Đây là các mà chúng ta vẫn hay làm khi sử dụng http thuần với bloc, sử dụng các hàm ví dụ như fromJson, dưới đây là ví dụ :
Tạo file post.dart , có nội dung như sau :
Cách 2 – Automatic Serialization
Trước khi để sử dụng cách này thì bạn cần khai báo các thư viện như json_annotation và json_serializable như ở trên.
Bạn thấy một số lỗi ?
Tiếp tuc chạy dòng lệnh trong mục terminal : flutter pub run build_runner build
Trong quá trình chạy bạn thấy báo lỗi : Missing “part ‘post.g.dart’;”.
Thêm khai báo đó: part ‘post.g.dart’; và tiếp tục chạy tiếp dòng lệnh trên : flutter pub run build_runner build
Nhận xét : Phương pháp automatic serialization dùng cho các dự án trung bình và lớn
Xây dựng UI
Trong file main.dart, bạn có thể dùng đoạn code bên dưới :
Dưới đây là kết quả :
Kết luận : Retrofit là khái niệm ban đầu được dùng cho Android, tuy nhiên khi dùng trên Flutter framework, nó cũng phát huy tác dụng trên iOS. Sử dụng retrofit có rất nhiều ưu việt, nó phù hợp với các dự án trung bình và lớn bởi tính tiện dụng của nó.
Cảm ơn các bạn đã đọc bài viết về Retrofit Flutter của tôi !