Retrofit trong Android là gì? Tìm hiểu chi tiết về Retrofit

Retrofit là thuật ngữ được thường xuyên nhắc tới trong cùng đồng những Android Developer bởi những ưu điểm mà nó mang trong mình lại. Tuy nhiên, đối sở hữu những ai ko thuộc chuyên ngành này sẽ cảm thấy khái niệm này xa lạ. Vậy là Retrofit trong Android là gì? Quý khách hãy cùng Tino Group tìm hiểu chi tiết hơn qua bài viết dưới đây nhé!

Retrofit là gì?

Định nghĩa Retrofit

Retrofit được định nghĩa là 1 type-safe HTTP consumer cho Java, Android và Kotlin do doanh nghiệp Sq. vươn lên là. Retrofit tương trợ cho những nhà lập trình chuyển đổi API thành Java Interface để dễ dàng kết nối tới 1 dịch vụ REST trên internet.

Retrofit là 1 trong những thư viện Relaxation-Shopper được dùng phổ thông} hiện nay trong việc tương trợ giao tiếp giữa consumer và server trở lên thuận tiện hơn. Thư viện này siêu mạnh mẽ cho phép bạn dễ dàng xử lý dữ liệu JSON hoặc XML và tiếp tục sẽ phân tách cú pháp thành Plain Previous Java Objects (POJOs). Tại đây, gần như những bắc buộc như GET, POST, PUT, PATCH, và DELETE đều có thể được thực hành.

Tương tự động như những phần mềm mã nguồn mở khác, Retrofit được xây dựng dựa trên những thư viện và công cụ mạnh mẽ. Retrofit khiến cho việc dùng OkHttp trở nên đơn giản để xử lý những bắc buộc trên mạng. Quanh đó đấy, đề cập từ Retrofit2 sẽ ko tích hợp sở hữu bất kỳ 1 bộ chuyển đổi JSON nào để phân tách JSON thành những đối tượng Java. Để xử lý điều đấy, Retrofit sẽ đi kèm sở hữu những thư viện chuyển đổi JSON sau đây:

  • Gson: com.squareup.retrofit:converter-gson
  • Jackson: com.squareup.retrofit:converter-jackson
  • Moshi: com.squareup.retrofit:converter-moshi
Xem Thêm  Bí quyết nạp tiền vào PayPal bằng thẻ Visa – Nạp tiền vào có mất phí tổn ko?

REST API là gì?

REST là viết tắt của cụm từ Representational State Switch, được ra đời vào 5 2000 trong bài luận văn tiến sĩ của Roy Thomas Fielding (người đồng sáng lập giao thức HTTP). Đây là 1 dạng chuyển đổi cấu trúc dữ liệu và là 1 phong bí quyết kiến ​​trúc cho việc thiết kế những ứng dụng có kết nối. REST sẽ dùng HTTP đơn giản để tạo ra giao tiếp giữa những máy. Vì vậy, thay thế vì dùng 1 URL cho việc xử lý những thông tin người mua, REST sẽ tiến hành gửi 1 bắc buộc HTTP như GET, POST, DELETE,…tới 1 URL và xử lý dữ liệu tại đấy.

API là viết tắt của cụm từ Utility Programming Interface, là 1 giao diện lập trình ứng dụng giúp tạo ra những phương thức kết nối tới những thư viện và những ứng dụng khác nhau.

Tóm lại, REST API là 1 ứng dụng chuyển đổi cấu trúc dữ liệu có phương thức để kết nối sở hữu những thư viện hoặc những ứng dụng khác. REST API ko được xem là 1 dạng kỹ thuật mà đây là 1 giải pháp để tạo ra những ứng dụng internet providers thay thế thế cho những dạng khác như SOAP, WSDL,…

Chỉ dẫn bí quyết dùng Retrofit trong Android

Để dùng Retrofit bạn cần thêm dependency vào trong file construct.gradle :

implementation ‘com.squareup.retrofit2:retrofit:2.4.0’ implementation ‘com.squareup.retrofit2:converter-gson:2.3.0’

Retrofit Annotations

Bạn sẽ dùng Annotations để mô tả bắc buộc HTTP:

  • Tương trợ những tham số URL và tham số truy vấn
  • Chuyển đổi đối tượng để new có thể bắc buộc nội dung
  • Multipart request physique và tệp tải lên

public interface StackOverflowApi {

@GET(“/2.2/questions?order=desc&kind=creation&website=stackoverflow&tagged={tag}”) Observable<StackOverflowQuestion> loadQuestion(@Path(“tag”) String tag); }

Annotation trên những phương thức của interface và những tham số của nó sẽ cho biết bí quyết xử lý bắc buộc.

Request Methodology

Từng phương thức lời yêu cầu Annotation HTTP phân phối những request technique và URL. Có 5 Annotation được tích hợp sẵn bao gồm: @GET, @POST, @PUT, @DELETE và @HEAD URL tương đối của tài nguyên đã được chỉ định trong Annotation.

Xem Thêm  Give away là gì? Những bước thực hành 1 hoạt động Give away hiệu quả

URL Manipulation

URL request có thể được tự động động cập nhật bằng bí quyết dùng những khối thay thế thế và những tham số trên phương thức.

Bạn có thể dùng URL 1 bí quyết tự động động dựa trên những biến truyền vào, bằng bí quyết dùng annotation @Path sở hữu lệnh dưới đây:

@GET(“group/{id}/customers”) Name<Listing<Consumer>> groupList(@Path(“id”) int groupId);

Bạn cũng có thể nối thêm parameter vào sau URL bằng bí quyết dùng annotation @Question sở hữu lệnh dưới đây:

@GET(“group/{id}/customers”) Name<Listing<Consumer>> groupList(@Path(“id”) int groupId, @Question(“kind”) String kind);

Bạn có thể dùng @QueryMap đối sở hữu 1 số hài hòa tham số truy vấn phức tạp bằng lệnh dưới đây:

@GET(“group/{id}/customers”) Name<Listing<Consumer>> groupList(@Path(“id”) int groupId, @QueryMap Map<String, String> choices);

Request Physique

1 đối tượng có thể được chỉ định khiến phần thân bắc buộc HTTP sở hữu Annotation @Physique.

@POST(“customers/new”) Name<Consumer> createUser(@Physique Consumer person);

Đối tượng còn có thể được chuyển đổi bằng bí quyết dùng Converter được chỉ định sẵn trên occasion của Retrofit. Còn trường hợp ko có Converter nào được thêm vào, bạn chỉ có thể dùng RequestBody.

Kind Encoded và Multipart

Những phương thức cũng có thể khai báo để gửi dữ liệu được mã hóa và dữ liệu multipart. Dữ liệu đã được mã hóa theo type sẽ gửi lúc @FormUrlEncoded được chỉ định trên phương thức. Từng cặp key-value sẽ được chú thích bằng @Area có chứa tên và đối tượng phân phối giá trị.

@FormUrlEncoded @POST(“person/edit”) Name<Consumer> updateUser(@Area(“first_name”) String first, @Area(“last_name”) String final);

Trong lúc đấy, những bắc buộc multipart sẽ được dùng lúc @Multipart xuất hiện trên phương thức. Những phần sẽ được khai báo bằng bí quyết dùng @Half

@Multipart @PUT(“person/picture”) Name<Consumer> updateUser(@Half(“picture”) RequestBody picture, @Half(“description”) RequestBody description);

Những phần của multiparts dùng 1 trong những bộ chuyển đổi của Retrofit hoặc chúng có thể implement RequestBody để xử lý serialization của riêng chúng.

Xem Thêm  Magic Web Cash (MIM) là gì? Bí quyết sắm bán MIM Token hiệu quả

Converters

Retrofit được mặc định chỉ có thể deserialize phần thân bản tin HTTP thành kiểu OkHttp’s ResponseBody và chỉ chấp nhận kiểu RequetsBody cho Annotation @Physique.

Converter cũng có thể được thêm vào để tương trợ những loại khác:

GSON: com.squareup.retrofit2:converter-gson

Gson được định nghĩa là 1 thư viện Java dùng để chuyển đổi những đối tượng Java thành biểu diễn JSON của chúng. Ngược lại, Gson cũng có thể dùng để chuyển đổi 1 chuỗi JSON thành 1 đối tượng Java tương đương.

public class Query { @SerializedName(“title”) @Expose personal String mTitle; @SerializedName(“hyperlink”) @Expose personal String mLink; public String toString() { return mTitle; } }

@SerializedName siêu cần thiết cho Gson để ánh xạ những khóa JSON sở hữu những trường dữ liệu. Để thích hợp sở hữu quy ước đặt tên kiểu camelCase của Java cho những thuộc tính thành viên của lớp, bạn ko được dùng dấu gạch dưới để tách những từ ngữ trong 1 biến.

@Expose chỉ ra rằng trường này cần được định nghĩa sở hữu JSON serialization hoặc deserialization.

Tạo occasion Retrofit

Dí dụ: Bạn có thể tạo tạo interface cho API từ stackoverflow để lấy danh sách bài đăng thuộc tag “Android” bằng lệnh :

public interface StackOverflowApi { @GET(“/2.2/questions?order=desc&kind=creation&website=stackoverflow&tagged={tag}”) Name<StackOverflowQuestion> loadQuestion(@Path(“tag”) String tag); }

Tạo occasion sở hữu Retrofit2 :

Retrofit retrofit = new Retrofit.Builder() .baseUrl(“https://api.stackexchange.com”) .addConverterFactory(GsonConverterFactory.create(gson)) .construct();

Tiến hành Request tới API và xử lý kết quả trả về :

StackOverflowApi stackOverflowApi = retrofit.create(StackOverflowApi.class); stackOverflowApi.loadQuestion(“android”) .enqueue(new Callback<StackOverflowQuestion>() { @Override public void onResponse(Name<StackOverflowQuestion> name, Response<StackOverflowQuestion> response) { //TODO Xử lý dữ liệu trả về } @Override public void onFailure(Name<StackOverflowQuestion> name, Throwable t) { //TODO Xử lý lỗi } });

Dùng Retrofit chuyên nghiệp sẽ giúp bạn thực hành những request 1 bí quyết dễ dàng. Trên đây là những thông tin cơ bản về Retrofit trong Android, hy vọng đây sẽ là 1 tri thức new cho những ai đang theo đuổi ngành lập trình.

FAQs về Retrofit

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO

  • Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Heart, Số 72 Lê Thánh Tôn, Phường Bến Nghé, Quận 1, Thành phố Hồ Chí MinhVăn phòng đại diện: 42 Trần Phú, Phường 4, Quận 5, Thành phố Hồ Chí Minh
  • Điện thoại: 0364 333 333Tổng đài miễn chi phí: 1800 6734
  • Electronic mail: gross [email protected]
  • Web site: www.tino.org