package com.example.jingbin.cloudreader.http;
import com.example.http.HttpUtils;
import com.example.jingbin.cloudreader.bean.FrontpageBean;
import com.example.jingbin.cloudreader.bean.GankIoDataBean;
import com.example.jingbin.cloudreader.bean.GankIoDayBean;
import com.example.jingbin.cloudreader.bean.HotMovieBean;
import com.example.jingbin.cloudreader.bean.MovieDetailBean;
import com.example.jingbin.cloudreader.bean.book.BookBean;
import com.example.jingbin.cloudreader.bean.book.BookDetailBean;
import retrofit2.http.GET;
import retrofit2.http.Path;
import retrofit2.http.Query;
import rx.Observable;
/**
* Created by jingbin on 16/11/21.
* 网络请求类(一个接口一个方法)
*/
public interface HttpClient {
class Builder {
public static HttpClient getDouBanService() {
return HttpUtils.getInstance().getDouBanServer(HttpClient.class);
}
public static HttpClient getTingServer() {
return HttpUtils.getInstance().getTingServer(HttpClient.class);
}
public static HttpClient getGankIOServer() {
return HttpUtils.getInstance().getGankIOServer(HttpClient.class);
}
}
/**
* 首页轮播图
*/
@GET("ting?from=android&version=5.8.1.0&channel=ppzs&operator=3&method=baidu.ting.plaza.index&cuid=89CF1E1A06826F9AB95A34DC0F6AAA14")
Observable<FrontpageBean> getFrontpage();
/**
* 分类数据: http://gank.io/api/data/数据类型/请求个数/第几页
* 数据类型: 福利 | Android | iOS | 休息视频 | 拓展资源 | 前端 | all
* 请求个数: 数字,大于0
* 第几页:数字,大于0
* eg: http://gank.io/api/data/Android/10/1
*/
@GET("data/{type}/{pre_page}/{page}")
Observable<GankIoDataBean> getGankIoData(@Path("type") String id, @Path("page") int page, @Path("pre_page") int pre_page);
/**
* 每日数据: http://gank.io/api/day/年/月/日
* eg:http://gank.io/api/day/2015/08/06
*/
@GET("day/{year}/{month}/{day}")
Observable<GankIoDayBean> getGankIoDay(@Path("year") String year, @Path("month") String month, @Path("day") String day);
/**
* 豆瓣热映电影,每日更新
*/
@GET("v2/movie/in_theaters")
Observable<HotMovieBean> getHotMovie();
/**
* 获取电影详情
*
* @param id 电影bean里的id
*/
@GET("v2/movie/subject/{id}")
Observable<MovieDetailBean> getMovieDetail(@Path("id") String id);
/**
* 获取豆瓣电影top250
*
* @param start 从多少开始,如从"0"开始
* @param count 一次请求的数目,如"10"条,最多100
*/
@GET("v2/movie/top250")
Observable<HotMovieBean> getMovieTop250(@Query("start") int start, @Query("count") int count);
/**
* 根据tag获取图书
*
* @param tag 搜索关键字
* @param count 一次请求的数目 最多100
*/
@GET("v2/book/search")
Observable<BookBean> getBook(@Query("tag") String tag, @Query("start") int start, @Query("count") int count);
@GET("v2/book/{id}")
Observable<BookDetailBean> getBookDetail(@Path("id") String id);
/**
* 根据tag获取music
* @param tag
* @return
*/
// @GET("v2/music/search")
// Observable<MusicRoot> searchMusicByTag(@Query("tag")String tag);
// @GET("v2/music/{id}")
// Observable<Musics> getMusicDetail(@Path("id") String id);
}