Retrofit trong Android

Retrofit là gì? Retrofit trong Android là một type-safe HTTP client cho Android và Java được phát triển bởi Square. Thư viện Retrofit cung cấp một khuôn khổ mạnh mẽ để xác thực, tương tác với các API và gửi yêu cầu mạng với OkHttp.

Retrofit trong Android

Retrofit là một trong những thư viện Rest-Client được sử dụng phổ biến trong việc giao tiếp giữa client – server trở lên dễ dàng và thuận tiện hơn.

1. Giới thiệu Retrofit trong Android

  • Thư viện Retrofit làm cho việc gởi và nhận dữ liệu JSON hoặc XML dễ dàng và đơn giản, dữ liệu sẽ được phân tách thành Plain Old Java Object (POJO).
  • Đối với Retrofit 2 hỗ trợ khá nhiều nhiều trình phân tích cú pháp khác nhau để xử lý dữ liệu bao gồm như Gson, Jackson, Moshi… Cụ thể được trình bày ở bảng dưới đây:
Thư viện Đường dẫn
Gson com.squareup.retrofit2:converter-gson:2.1.0
Jackson com.squareup.retrofit2:converter-jackson:2.1.0
Moshi com.squareup.retrofit2:converter-moshi:2.1.0
Protobuf com.squareup.retrofit2:converter-protobuf:2.1.0
Wire com.squareup.retrofit2:converter-wire:2.1.0
Simple XML com.squareup.retrofit2:converter-simplexml:2.1.0
Scalars com.squareup.retrofit2:converter-scalars

2. Khởi tạo Retrofit trong Android

  • Retrofit thực hiện gởi và nhận các yêu cầu HTTP đến các API đang chạy trên một máy chủ ở đâu đó trên Internet, và vì thế trong ứng dụng của bạn cần phải có quyền truy cập mạng, đảm bảo yêu cầu quyền truy cập Internet trong tệp AndroidManifest.xml của ứng dụng:
<uses-permission android:name="android.permission.INTERNET" />
  • Thêm thư viện vào tập tin build.gradle trong phần dependencies:
dependencies {
    // retrofit
    compile 'com.google.code.gson:gson:2.8.2'
    compile 'com.squareup.retrofit2:retrofit:2.3.0'
    compile 'com.squareup.retrofit2:converter-gson:2.3.0'
}
  • Nếu như bạn muốn sử dụng RxJava với Retrofit 2 thì cần phải thêm thư viện RxJava vào ứng dụng trong tập tin build.gradle:
dependencies {
     // rxjava
     compile 'io.reactivex:rxjava:1.1.6'
     compile 'io.reactivex:rxandroid:1.2.1'
     compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
}
  • Để gửi yêu cầu mạng tới một API, chúng ta cần phải sử dụng lớp Retrofit.Builder và chỉ định đường dẫn URL trong phương thức baseUrl() như sau:
String BASE_URL = "https://teamvietdev.com/the/retrofit/"
Retrofit retrofit = new Retrofit.Builder()
    .baseUrl(BASE_URL)
    .addConverterFactory(GsonConverterFactory.create(gson))
    .build();
  • Với Retrofit 2 bạn cần sử dụng các chú thích để định nghĩa các yêu cầu HTTP, các tham số truy vấn và kiểu giá trị trả về. Thêm nữa nó còn cung cấp cho việc tùy chỉnh tiêu đề (custom headers), tải lên hoặc tải xuống tập tin…

Giá trị trả về luôn luôn là một tham với đối tượng Call chẳng hạn như Call.

  • Retrofit biến API HTTP thành một Java interface, mỗi Call đã tạo có thể tạo ra một yêu cầu HTTP theo cơ chế đồng bộ hoặc không đồng bộ tới máy chủ từ xa. Mỗi phương thức phải có chú thích HTTP bao gồm GET, POST, PUT, DELETE và HEAD.
  • Sử dụng các phương thức theo chuẩn RESTful thì GET, POST, PUT, DELETE và HEAD cụ thể thường được sử dụng trong các trường hợp như sau:
HTTP Mô tả
POST Thường được sử dụng để tạo (Create) dữ liệu mới.
GET Thường được sử dụng để lấy (Read) dữ liệu về.
PUT Thường được sử dụng để cập nhật (Update) dữ liệu.
DELETE Thường được sử dụng để xóa (Delete) dữ liệu.
HEAD Thường được sử dụng để lấy phần header mà không có phần body.

Lời kết: Như vậy thông qua bài viết này mình vừa hướng dẫn các bạn tìm hiểu về Retrofit trong Android giúp gởi và nhận dữ liệu JSON hoặc XML dễ dàng và đơn giản, dữ liệu sẽ được phân tách thành Plain Old Java Object (POJO). Ngoài ra bạn có thể xem thêm nhiều bài viết khác trong chủ đề lập trình Android tại Team Việt Dev.

(Tác giả: Team Việt Dev)

Bình luận