Custom Request Retrofit
Custom request di Retrofit mengacu pada kemampuan untuk membuat permintaan HTTP khusus yang tidak tercakup oleh method bawaan seperti GET, POST, PUT, atau DELETE. Dalam beberapa kasus, kita mungkin perlu mengirimkan permintaan dengan metode HTTP yang berbeda, menentukan header khusus, atau mengirimkan body dalam format kustom.
Namun, dalam beberapa situasi, method bawaan Retrofit mungkin tidak mencukupi untuk memenuhi kebutuhan aplikasi. Oleh karena itu, Custom Retrofit digunakan untuk mengatasi kendala tersebut dengan mengkustomisasi berbagai aspek dari proses komunikasi jaringan.
Ada beberapa kelebihan dalam penggunaan custom request retrofit dalam pengembangan aplikasi android, diantaranya:
1. Fleksibilitas
Dengan custom request, kalian dapat mengirim permintaan dengan metode HTTP khusus yang tidak tercakup oleh metode bawaan seperti GET, POST, PUT, atau DELETE. kalian dapat menentukan metode HTTP yang sesuai dengan kebutuhan kalian.
2. Header Kustom
kalian dapat menentukan header kustom dalam permintaan dengan mudah menggunakan anotasi @Headers. Ini memungkinkan kalian untuk menambahkan header tambahan yang diperlukan oleh API yang kalian gunakan.
3. Body Kustom
Dalam beberapa kasus, kalian mungkin perlu mengirimkan body permintaan dalam format kustom yang tidak lazim atau tidak didukung secara langsung oleh metode bawaan Retrofit. Dengan custom request, kalian dapat mengirimkan body permintaan dalam format yang diinginkan.
4. Kompatibilitas
Custom request di Retrofit memungkinkan kalian berinteraksi dengan berbagai API yang mungkin memiliki kebutuhan atau kekhususan tertentu. kalian dapat mengakomodasi persyaratan API dengan mengirimkan permintaan yang sesuai menggunakan custom request.
5. Penggunaan yang Sederhana
Implementasi custom request di Retrofit relatif sederhana dan mudah dipahami. kalian dapat menentukan endpoint dan metode permintaan dalam interface Retrofit kalian, dan Retrofit akan menangani koneksi dan pemrosesan permintaan secara otomatis. Di Retrofit ada beberapa bagian yang dapat kita custom, diantaranya:
1. Converter
Retrofit mendukung berbagai converter seperti GsonConverter, JacksonConverter, dan MoshiConverter untuk mengubah JSON menjadi objek Kotlin/Java, atau ScalarsConverter untuk mengubah respons menjadi string sederhana. Contoh penggunaan converter dengan berbagai jenis converter, diantaranya:
a. Gson
b. Moshi
c. Jackson
d. Scalars
2. Call Adapter
Call Adapter dapat digunakan untuk menentukan bagaimana data response dari server HTTP akan diolah dan dikonversi menjadi object yang dapat digunakan di aplikasi Android.Contoh penggunaan call adapter dengan berbagai jenis call adapter, diantaranya:
a. RxJava
b. Coroutine
c. LiveData
3. Interceptor
Interceptor membuat komponen khusus yang akan secara otomatis menambahkan header Authorization ke setiap permintaan yang dikirim melalui Retrofit. kalian dapat memodifikasi permintaan sebelum dikirim atau respons setelah diterima.
4. Base URL
Base URL dapat menentukan base URL endpoint API dengan menggunakan anotasi @BaseUrl pada interface ApiService. Ini memungkinkan kalian mengganti base URL saat melakukan pengujian atau saat menghubungkan ke server yang berbeda. Langkah - langkah penggunaan @BaseUrl, diantaranya:
1. Pembuatan annotation class
2. Memasukkan ke dalam retrofit
5. Request Headers
Request headers hanya digunakan apabila kalian akan menambahkan header khusus pada request tertentu. Request headers hanya menggunakan annotation @Headers untuk menentukan header khusus.
6. Path Parameters dan Query Parameters
Path dan Query parameters digunakan untuk menambahkan parameter dinamis ke URL dengan menggunakan annotation @Path dan @Query. Dengan menggunakan parameter ini memungkinkan kalian untuk mengirim data secara dinamis sebagai bagian dari URL.