Tìm hiểu sử dụng thư viện networking Retrofit 2.0

Giới thiệu

Android có nhiều cách để kết nối và lấy dữ liệu từ 1 WebService. Có thể bạn đã từng dùng các lớp trong gói Http Apache (Loại bỏ trên Android 6.0, phải dùng như là 1 thư viện ngoài) hoặc đã từng dùng 1 số thư viện để kết nối với internet và nhận các dữ liệu từ server như Volley (Google), KSOAP …

Hôm nay tôi xin giới thiệu một thư viện vô cùng lợi ích cho việc kết nối internet và nhận dữ liệu từ server một cách dễ dàng và viết code theo mô hình chuẩn RESTFul Webservices đó là:

Retrofit ( Ver2.0 )

Retrofit là một Rest Client (Tìm hiểu thêm về chuẩn RESTFul dưới link tham khảo) cho Android và Java và được tạo ra bởi Square. Họ làm cho việc nhận và tải lên JSON (hoặc dữ liệu khác) một cách khá dễ dàng tới một WebService dựa trên mô hình REST.

Nó được phát triển giúp cho quá trình kết nối client – server trở nên dễ dàng, nhanh chóng.Với Retrofit bạn có thể GET,POST,PUT,DELETE …

Đa số ứng dụng Android hiện nay đều đi kèm với một backend server nên một thư viện giúp hỗ trợ giao tiếp với server sẽ rất hữu ích. Retrofit là một trong những thư viện nổi tiếng trong việc hỗ trợ Netwoking.

Một số lý do mà mình dùng Retrofit cho Networking:

  • Performance tốt.
  • Dễ sử dụng.
  • Dùng chung được với RxAndroid.

Dưới đây là phần so sánh performance với Volley và AsyncTask:

so-sanh-retrofit-va-volley-tron-android

Bạn có thể thấy Retrofit đạt tốc độ vượt trội hơn hẳn.

Hướng dẫn sử dụng

Cấu trúc khi sử dụng Retrofit :

  1. Model class to map JSON Data
  2. Interfaces để định nghĩa các API cho Webservice
  3. Retrofit.Builder Lớp để định nghĩa URL Endpoint cho các hoạt động liên quan tới Http

Cú pháp thông dụng khi sử dụng thư viện Retrofit:

Định nghĩa API: 

public interface GitHubService {
  @GET("/users/{user}/repos")
  List<Repo> listRepos(@path("user") String user);
}

Config cho Endpoint:

RestAdapter restAdapter = new RestAdapter.Builder()
  .setEndpoind("https://api.github.com/")
  .build();
 
GitHubService service = restAdapter.create(GitHubService.class);

Gọi API:

List<Repo> repos = service.listRepos("ant");

 

Ở bài viết tiếp theo mình sẽ hướng dẫn các bạn cách GET, POST… trong retrofit 2.

Tham khảo thêm tại Github, Retrofit Square, Google

Nguyễn Linh

Chia sẻ để cùng tiến bộ...

Bình luận đã bị khoá.