团队并行开发,每个人对自己模块的api进行封装,
public interface UserAPI {
@POST("/mobile/settings/login.html")
@FormUrlEncoded
Flowable<UserEntity> doLogin(@QueryMap Map<String, Object> map);
@POST("/mobile/settings/logout.html")
@FormUrlEncoded
Flowable<Boolean> doLogout();
}
public interface IRetrofitWeather {
/**
* retrofit 封装
* @param location
*/
@FormUrlEncoded
@POST("telematics/v3/weather?")
Call<WeatherApiData> getWeather(@Field("location") String location,
@Field("output") String ouput,
@Field("ak") String ak);
}
然后利用Retrofit的create方法创建出对应的apiservice进行网络请求,各个模块都需要含有apiservice实例的简单单例封装,那么多个模块就有多个单例,这个时候就需要工厂模式进行设计。
@Override
public void getWeather(String location, Callback<WeatherApiData> callback) {
IRetrofitWeather api = retrofit.create(IRetrofitWeather.class);
Call<WeatherApiData> call = api.getWeather(location, APIConstant.URL.OUTPUT, APIConstant.URL.AK);
call.enqueue(callback);
}