rx.Observable
'u kullanmadan önce, retrofit ile özel bir geri arama kullandım, böylece yanıtı/hatayı işlemek için belirli bir mantığı ekleyebilirim ve boilerplate kodu olarak her istek için bunu geri arama içinde yapmak zorunda değilim.RxJava/Retrofit - Kullanıcıları belirli bir Abone alt sınıfını kullanmaya nasıl zorlayabilirim?
@GET("/user_endpoint/")
Observable<User> getUser();
@GET("/profile_endpoint/")
Observable<Profile> getProfile();
Yapamam:
böyle bir yöntem imzası koyarak özel geri arama kullanmalarını zorlamak: Bir Observable
@GET("/user_endpoint/")
void getUser(CustomCallback<User> callback);
@GET("/profile_endpoint/")
void getProfile(CustomCallback<Profile> callback);
ama şimdi dönen ediyorum Özel bir geriçağırımın her zaman hata/yanıtı proxy yaptığını doğrulamak için bir yol bulmak.
Ayrıca, retrofit2.0 ile, kullanıcıyı döndürülen Call
nesnesini kullanarak özel bir geri arama kullanmasını nasıl zorlayabilirim? referans için
CustomCallback:
public abstract class CustomCallback<T> implements Callback<T> {
@Override public final void success(T t, Response response) {
// do some logic
onSuccess(t);
}
@Override public final void failure(RetrofitError error) {
// do something with the error here such as show a Toast
Toast.makeText(Application.getInstance(), error.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
onFailure(error);
}
public abstract void onSuccess(T response);
public abstract void onFailure(Throwable error);
}
Sorular, gözlemlenebilir olanı kullanamadığınızı gördüğünüzde, gözlemlenebilir bir geri dönüşü neden geri göndermeniz gerektiğidir. Neden CustomCallback'in Gözlemlenebilir hale getirilmemesini ve sonra da bu türünü geri döndürmemesini sağlayın? Yanıtı proxy yaptığını, nerede vekil olmak istediğinizi, gözlemcilere bildirmek istediğinizi söylediğinizde? –
döndürülen tür bir rx olmalıdır. Alt sınıf değil https://github.com/square/retrofit/blob/parent-1.4.0/retrofit/src/main/java/retrofit/RestAdapter.java#L244 – Prem