Class RxJava3CallAdapterFactory


  • public final class RxJava3CallAdapterFactory
    extends retrofit2.CallAdapter.Factory
    A call adapter which uses RxJava 3 for creating observables.

    Adding this class to Retrofit allows you to return an Observable, Flowable, Single, Completable or Maybe from service methods.

    
     interface MyService {
       @GET("user/me")
       Observable<User> getUser()
     }
     
    There are three configurations supported for the Observable, Flowable, Single, Completable and Maybe type parameter:
    • Direct body (e.g., Observable<User>) calls onNext with the deserialized body for 2XX responses and calls onError with HttpException for non-2XX responses and IOException for network errors.
    • Response wrapped body (e.g., Observable<Response<User>>) calls onNext with a Response object for all HTTP responses and calls onError with IOException for network errors
    • Result wrapped body (e.g., Observable<Result<User>>) calls onNext with a Result object for all HTTP responses and errors.
    • Method Detail

      • create

        public static RxJava3CallAdapterFactory create()
        Returns an instance which creates synchronous observables that do not operate on any scheduler by default.
        Returns:
        the new adapter instance
      • createWithScheduler

        public static RxJava3CallAdapterFactory createWithScheduler​(Scheduler scheduler)
        Returns an instance which creates synchronous observables that subscribe on scheduler by default.
        Parameters:
        scheduler - the scheduler to run the network operations on
        Returns:
        the new adapter instance
      • get

        @Nullable
        public @Nullable retrofit2.CallAdapter<?,​?> get​(java.lang.reflect.Type returnType,
                                                              java.lang.annotation.Annotation[] annotations,
                                                              retrofit2.Retrofit retrofit)
        Specified by:
        get in class retrofit2.CallAdapter.Factory