Tìm hiểu về thư viện network Retrofit (Phần 1)

Retrofit là một network library mới nổi của Square ( khoảng vài năm…) và thường được so sánh với thư viện Volley của Google.
Retrofit là gì ?
A type-safe REST client for Android and Java.
Ko biết diễn giải ra tiếng việt như thế nào, nhưng cứ hiểu nó tương đương với Volley là được rồi. (Mặc dù đi sâu vào so sánh thì hai thư viện này có những mục đích và chức năng khác nhau. Tuy nhiên chưa cần quan tâm đến bây giờ)
Retrofit đã ra đến phiên bản > 2. và khá ổn định. Trước đó có một phiên bản ổn định và được biết tới nhiều là 1.9. Chúng ta sẽ nghiên cứu >2.0 thôi vì còn học cái cũ làm gì.
Để sử dụng Retrofit, ta khai báo trong gradle.

Ở các phiên bản trước, khi khai báo thì retrofit & OkHttp được khai báo như hai module riêng rẽ, tuy nhiên đến 2.0 trở đi thì mặc định retrofit dùng OkHttp làm tầng network (Network Layer) và xây dựng trên nó rồi.
Vì vậy khai báo chung là như một.
(Retrofit chỉ dùng OkHttp để làm tầng network, còn Volley thì linh động hơn, có thể dùng được OkHttp, Appache, v.vv.)
Ngoài ra đi kèm retrofit cung cấp cả gson converter như là một Convert Factory của nỏ.
(Gson là định dạng phổ biến hiện nay nên khai báo thế. Nếu muốn dùng XML thì cũng có thể khai báo XML converter)
Phần khai báo thư viện đã xong. Tiếp theo dùng Retrofit như thế nào.
Ta sẽ tìm hiểu một khái niệm cơ bản & cốt lõi đó là Service Generator. Mục đích của thằng này là để tạo ra một Adapter REST cơ bản cho class/interface của chúng ta.
Code như sau:
Phân tích đoạn code: chúng ta sẽ khai báo base Url của api.
Sau đó tạo ra một OkHttp client.
Sau đó tạo ra một Builder của retrofit sử dụng base url và network layer là Okhttp vừa khởi tạo.
Sau đó sử dụng builder để tạo ra service cho lớp/interface cần tạo.
“Lớp/interface cần tạo” được nhắc đến ở đây là gì ?
Các interface này là những khai báo về method call api. Trong file này chúng ta sẽ khai báo các api với thông tin như: phương thức call api (GET, POST), tham số truyền vào, kiểu truyền vào, giá trị trả về.
(Contributor là một class dữ liệu )
Khi sử dụng, chúng ta sẽ dùng như sau:
Trong đoạn code trên có thể thấy được vai trò của Service Generator. Interface GitHubClient lúc đầu chỉ là một class khai báo các phương thức. Nhờ có Service Generato mà nó mới trở thành một Http client.
Tạm thời tìm hiểu qua về cách sử dụng Retrofit là như vậy. Ở những bài tiếp theo của serrie retrofit sẽ trình bày các vấn đề sau:
– Cách  truyền tham số vào một API Retrofit.
– Call api Retrofit đồng bộ & bắt đồng bộ.
– So sánh Volley & Retrofit.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s