Pernahkah Anda membuat aplikasi yang membuatuhkan authentication 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~

--

--