package uk.ivanc.archimvvm.model; import java.util.List; import retrofit2.Retrofit; import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; import retrofit2.http.GET; import retrofit2.http.Path; import retrofit2.http.Url; import rx.Observable; public interface GithubService { @GET("users/{username}/repos") Observable<List<Repository>> publicRepositories(@Path("username") String username); @GET Observable<User> userFromUrl(@Url String userUrl); class Factory { public static GithubService create() { Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); return retrofit.create(GithubService.class); } } }