Rx 2 Android ¿qué es mejor Single o Observable para llamadas api?

Cuando usamos retrofit2 para hacer llamadas de descanso de API con Rx, ¿Cuál es el mejor enfoque para usar, Single o Observable?

public interface ApiService{ Single<Data> getDataFromServer(); Observable<Data> getDataFromServer(); } 

Yo sugeriría usar un Single ya que es una representación más precisa del flujo de datos: se hace una solicitud al servidor y se obtiene una emisión de datos O un error:

 Single: onSubscribe (onSuccess | onError)? 

Para un Observable teóricamente podrías obtener varias emisiones de datos Y un error

 Observable: onSubscribe onNext? (onCompleted | onError)? 

Sin embargo, si está utilizando rx-java2 , sugeriría usar un Maybe vez en lugar de Single . La diferencia entre los dos es que Maybe maneja también el caso cuando se obtiene la respuesta del servidor, pero no contiene ningún cuerpo.

 Maybe: onSubscribe (onSuccess | onCompleted | onError)? 

La diferencia entre Observable y Single es más bien semántica. Cuando usted está declarando algo Single usted está diciendo que este observable va a producir solamente un valor, no series de valores.

El uso de tipos semánticos adecuados es la mejor forma de documentar su API.

  • No vuelva a ejecutar la llamada de Retrofit si todavía está en curso con RxJava 2
  • Rxandroid pide que se ejecute en el hilo ui aunque esté suscrito en AndroidSchedulers.mainThread ()
  • Uso de RoboSpice y RxJava
  • ¿Por qué RxJava con Retrofit en Android doOnError () no funciona, pero el suscriptor onError no
  • Obtenga el valor actual de RxJava Observable
  • Comprobación de Internet, dónde colocar al usar MVP, RX y Retrofit
  • Repetir la llamada API con retrofit y rxjava
  • Flatten Observable <Observable <Cursor >> Observable <Cursor>
  • RxJava se vuelve a suscribir al evento tras la restauración de la actividad
  • Observable vs Flujo rxJava2
  • Acceso al dominio desde un subproceso incorrecto Excepción mientras se envió una copia usando copyFromRealm
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.