Retrofit adalah library REST client untuk Android yang mengubah API endpoint kalian menjadi sebuah Java interface API service. Pada awal pembelajaran memang terlihat kompleks, namun jika kalian sudah terbiasa pasti kalian akan sadar kegunaan dari Retrofit dan fleksibilitasnya yang memudahkan kita untuk membuat custom service sesuai yang kita inginkan. Retrofit sudah terkenal dan banyak digunakan di aplikasi-aplikasi Android yang populer.
Pertama buat project baru dengan nama Retrofit, lalu
buka buka.gradle , tambahkan kode berikut di dependencies nya
Library converter-gson
digunakan untuk mengkonversi JSON menjadi Java object, sedangan GSON sendiri
adalah library JSON parser yang dikeluarkan oleh Google.
Kita
bisa mengecek JSON dari randomuser.me di https://randomuser.me/api. Kita hanya akan
menggunakan data “info” yang ada pada JSON tersebut. Selanjutnya, kalian bisa berkunjung
ke http://www.jsonschema2pojo.org/ untuk mengkonversi data dari JSON ke POJO (Plain Old
Java Object.
Caranya,
copy-pastekan JSON berikut :
{
"info":
{
"seed":
"d59828ae73afb7e7",
"results":
1,
"page":
1,
"version":
"1.0"
}}
Lalu klik preview yang ada dibawah
Copykan file tersebut dan buat class baru , nama nya disesuaikan
Info.java
Result.java
MainActivity.java
Penjelasan :
private void initializeRetrofit(){ retrofit = new Retrofit.Builder() .baseUrl("https://randomuser.me/") .addConverterFactory(GsonConverterFactory.create()) .build(); }
Method diatas adalah untuk menginisialisasi kan library retrofit dan mengambil url nya
RetrofitAPIEndPointInterface.java
Anotasi @GET, berarti kita akan melakukan GET
Request ke URL tersebut. Ada dua fungsi pada kode di atas jika kalian
perhatikan, yaitu fungsi dengan balikan Result (getResultInfo()), dan fungsi
kedua dengan balikan ResponseBody (getResultAsJSON()).
ResponseBody adalah kelas bawaan dari Retrofit.
Fungsi dengan balikan ResponseBody digunakan apabila kalian ingin mendapatkan
balikan berupa JSON mentah dari web service. Hal ini berguna apabila kalian
belum sempat membuat model/java object untuk JSON kalian.
Sedangkan apabila kalian sudah membuat Java object /
model dari JSON yang akan kalian dapat, maka kalian bisa langsung memasukkan
model kalian ke dalam Call<T>, seperti contoh di fungsi pertama,
getResultInfo().
Layout
Activity_main.xml
Conten_main.xml
Terakhir
tambahin di AndroidManifest nya supaya bias terkoneksi ke internet
<uses-permission
android:name="android.permission.INTERNET"
/>