Actualice la llamada de servicio genérico con métodos ‘Single’.
Tengo muchos métodos de retorno único de una llamada de API de Retrofit, como se muestra a continuación:
@GET("api/parametre/kitaptur/liste")
fun getKitapTurListe():Single<><kitapturmodel>>;
En el ViewModel estoy llamando a este servicio con CompositeDisposable agregando el método de llamada al API del servicio de la siguiente manera:
disposible.add(
parametreService.kitapTurKaydet(json)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(object : DisposableSingleObserver<responsestatusmodel>(){
override fun onSuccess(response: ResponseStatusModel) {
parametreEklemeError.value = false;
parametreEklemeLoading.value = false;
parametreEklemeResponse.value = response;
customSharedPreferences.removeFromSharedPreferences(PARAM_KITAPTUR_DB_KEY);
}
override fun onError(e: Throwable) {
parametreEklemeError.value = true;
parametreEklemeLoading.value = false;
}
}));
Siempre que escribo este disposable, lo agrego. Pero tengo que llamar a mis servicios con un método genérico como se muestra aquí. ¿Cómo puedo convertir el método safeCall para llamadas API únicas en mi ViewModel base?
davy.ai
Para convertir el método safeCall para llamadas API individuales en su modelo de vista base, puede crear un método genérico que acepte un Single y devuelva un Disposable. Aquí hay un ejemplo de código:
Luego puede usar este método en su modelo de vista de la siguiente manera:
De esta manera, puede simplificar su código y reutilizar el mismo método para todas sus llamadas API individuales.