package com.zenglb.framework.http.core; import com.zenglb.framework.entity.Messages; import com.zenglb.framework.http.param.LoginParams; import com.zenglb.framework.http.result.JokesResult; import com.zenglb.framework.http.result.LoginResult; import com.zenglb.framework.http.result.ModulesResult; import com.zenglb.framework.http.result.StaffMsg; import java.util.List; import io.reactivex.Flowable; import io.reactivex.Observable; import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.GET; import retrofit2.http.Headers; import retrofit2.http.POST; import retrofit2.http.Path; import retrofit2.http.Query; /** * 所有的具体的和业务相关的Http请求,现在就是基本可以使用Rxjava 或者不使用 * <p> * 要能够自由的在Service 中使用! * <p> * <p> * Created by zenglb on 2017/3/17. */ public interface ApiService { /** * Login ,尝试使用Flowable 来处理, */ @Headers("NoNeedAuthFlag: NoNeedAuthFlag") @POST("api/lebang/oauth/access_token") Observable<HttpResponse<LoginResult>> goLoginByRxjavaObserver(@Body LoginParams loginRequest); /** * 获取信息 */ @GET("api/lebang/staffs/me/detail") Observable<HttpResponse<StaffMsg>> getStaffMsg(); /** * Login ,普通的登录和使用Rxjava 的方式都可以 */ @Headers("NoNeedAuthFlag: NoNeedAuthFlag") @POST("api/lebang/oauth/access_token1") Call<HttpResponse<LoginResult>> goLoginByRetrofit(@Body LoginParams loginParams); @GET("api/lebang/night_school/{type}") Observable<HttpResponse<List<JokesResult>>> getJokes(@Path("type") String type, @Query("page") int page); @Deprecated @GET("api/lebang/night_school/{type}") Flowable<HttpResponse<List<JokesResult>>> getAreuSleep(@Path("type") String type, @Query("page") int page); /** * get Message List(); */ @GET("api/lebang/messages") Call<HttpResponse<List<Messages>>> getMessages(@Query("max_id") long maxId, @Query("limit") int limit); /** * test get something */ @GET("api/lebang/staffs/me/modules") Call<HttpResponse<ModulesResult>> getModules(); /** * this request after login/oauth before logout * but no need oauth,so do not add auth header * * @param loginParams */ @POST("api/lebang/oauth/access_token") @Headers("NoNeedAuthFlag: NoNeedAuthFlag") Call<HttpResponse<LoginResult>> refreshToken(@Body LoginParams loginParams); /** * Login ,尝试使用Flowable 来处理, */ @Deprecated @Headers("NoNeedAuthFlag: NoNeedAuthFlag") @POST("api/lebang/oauth/access_token") Flowable<HttpResponse<LoginResult>> goLoginByRxjavaFlowable(@Body LoginParams loginRequest); }