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 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…
- 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)