Android Basic #3: Retrofit
Objectives:
— Mengenal basic dari Android Retrofit
Aloha Chevas!
Selamat datang kembali di serial Android Basic. Bisa langsung ketebak dong, dari cover dan judulnya, ya gak? Nah kita mau mengenal sedikit tentang Retrofit di kesempatan kali ini. Kali ini kita santai, gak terlalu banyak kodingan kok 👌
Jadi, pada kesempatan kali ini, kita akan bahas basic Retrofit seperti komponen yang harus ada di project teman-teman apa saja? Kapan kita menggunakan library ini? Arsitektur yang nanti akan digunakan bersamaan dengan Retrofit tuh yang mana ya? Ini semua akan kita bahas santai…
Hah Retrofit? Apa itu?
Sebelum pusing ke pengenalan komponennya, kita kenalan dulu nih sama Retrofit . Jadi, Retrofit adalah “alat” agar Android app kita dengan RESTful Web Service dapat menjalin hubungan satu sama lain.
Detilnya, Retrofit adalah Type-safe REST API client yang dibuat khusus untuk Android dan Java, sehingga menggunakan Android + RESTful Web Service menjadi lebih mudah.
Btw… buat yang nanyain RESTful Web Service tuh apa sih? Nah, simple-nya bisa disebut Remote data source (sumber data yang disimpan di internet).
Bagaimana cara mengimplementasikan Retrofit ?
Sebelum masuk ke implementasi, kita perlu belajar dulu komponen dari library Retrofit apa aja sih? Library Retrofit atau yang sering dikenal dengan Retrofit saja, mempunya 3 komponen utama.
1. Config class / Retrofit configuration
2. DAO (Data Access Object) / API Endpoint
3. Model / API Response
1. Retrofit Configuration
Komponen ini berfungsi untuk menginisalisasi dan mengkonfigurasi Retrofit client untuk menghubungkan BASE URL dari sebuah API dengan Endpoints (jalur API) yang ada di komponen DAO.
Selain konfigruasi API URL, di sini kita juga bisa setup “penangkap data” atau disebut Http Logger Interceptor untuk melihat data apa saja yang kita kirim dan kita ambil.
2. DAO (Data Access Object) / API Endpoint
DAO, komponen yang menghubungkan BASE URL ke tiap-tiap Endpoint API untuk mengakses data.
Untuk mendapatkan data yang kita mau, ada rute-rute (Endpoints) untuk mengaksesnya. Nah tapi selain rute, ada juga yang harus diperhatikan. Komponen lain yang harus diperhatikan adalah HTTP methods. Pada Retrofit, terdapat 4 anotasi HTTP methods, yaitu:
GET
Biasanya, method GET digunakan saat kita ingin mengambil data dari API. Seperti pada screenshot di bawah ini. Untuk mendapatkan list user Github, kita menggunakan @GET(“users”) dan @GET(“users/{username}”) untuk mendapatkan detail profil si user itu. Btw… yang ada di dalam kurung itu yang kita sebut Endpoints, jadi penulisannya @Methods(Endpoint: String)
POST
Temen-temen sering denger kata “Posting” kan? Nah, kalo kita mem-posting foto di sosial media, berarti kita mengirim foto tersebut ke sosial media. Method POST berperan seperti itu, saat kita menggunakan method ini, artinya kita mengirim data dari Android app ke API. Biasanya digunakan untuk login akun, register akun baru, checkout pesanan, atau bahkan mengirim feedback.
PUT
Namanya sedikit berbeda dengan method lainnya ya? Santai… Kalau biasanya temen-temen sering denger kata EDIT, nah PUT adalah EDIT. So, jelas yaaa fungsinya PUT adalah mengubah data yang sudah ada di API. Contoh paling mudahnya, saat kita ingin mengubah profil atau bio kita di suatu sosial media, nah disinilah method PUT beraksi.
DELETE
Like the name itself… Delete artinya Hapus, itulah fungsi dari method ini. Dalam real-time, method ini biasa digunakan saat melakukan aksi yang berhubungan dengan penghapusan data, baik permanen maupun sementara. Contoh, misalkan kita menyimpan suatu produk dengan fitur “add to cart”, tetapi karena kita ingat kalau kita sedang menghemat, kita hapus seluruh isi cart, saat menghapus itulah method ini beraksi.
Note: Selain anotasi @GET, @POST, @PUT, dan @DELETE. Ada anotasi lain yaitu @Multipart yang hanya digunakan saat berinteraksi dengan API berupa Form-Data (contohnya pada screenshot method POST)
3. Model/Response
Komponen yang berperan menampung response data yang didapat setelah kita me-request ke API.
Data-data kembalian ini disebut sebagai response, dalam Android Kotlin, dibuat sebagai response data class, seperti di screenshot.
Note: Setiap atribut dalam response model ini, harus memiliki variable yang sama seperti key pada API response saat melakukan request
Contoh kodingan-kodingan di atas, bisa teman-teman lihat di Github ini yak…
https://github.com/andresaftari/android-fundamental/tree/api-example
Nah… 3 komponen utamanya sudah kita bahas nih. Screenshot-screenshot di atas juga merupakan contoh dari kodingannya yaaaa. Apabila teman-teman mau mencoba langsung di Android Studio, tapi bingung mulai darimana, coba mampir salah satu dari 2 tutorial series di bawah ini:
1. Retrofit Basic
2. Retrofit + MVVM Architecture
Itu semua pengenalan untuk “Apa itu Retrofit?” dan “Komponennya apa aja sih?”. Ingat, Retrofit ini adalah salah satu library penting yang banyak digunakan oleh berbagai aplikasi Android, apalagi yang memiliki koneksi ke internet dan pertukaran data melalui internet. Anyway, sekian dulu untuk Android Basic #3 nya kali yaaa… Next partnya akan membahas apalagi kira-kira? Nahh, stay tune aja okee? Bye…