Membuat Authorization untuk Semua Request Retrofit di Android
Nov 21, 2022
Pernahkah Anda membuat aplikasi yang membuatuhkan authorization untuk connect ke API.
Untuk implementasinya, Anda perlu menambahkan parameter seperti ini.
@Headers(BuildConfig.GITHUB_API_KEY)
@GET("search/users")
fun getSearchUser(
@Query("q") username: String
): Call<SearchUserResponse>
@Headers(BuildConfig.GITHUB_API_KEY)
@GET("users/{username}")
fun getDetailUser(
@Path("username") username: String
): Call<User>
Apalagi kalau tokennya dinamis, kita perlu menambah parameter dan memasukkan token di setiap fungsi.
Lalu, gimana caranya supaya tidak mengulang-ulang? Kamu bisa pakai interceptor seperti ini.
private val authInterceptor = Interceptor { chain ->
val req = chain.request()
val requestHeaders = req.newBuilder()
.addHeader("Authorization", BuildConfig.GITHUB_API_KEY)
.build()
chain.proceed(requestHeaders)
}
private val client = OkHttpClient.Builder()
.addInterceptor(authInterceptor)
.build()
Cukup simpel kan? daripada harus menambahkan satu per satu di tiap header.
Semoga manfaat.
Maaf buru-buru mau pulang~
Tidak ada yang namanya jalan santai untuk menjadi versi diri yang terbaik~