/*************************************************************************************************/
/* RTAPIManagerParamSourceDelegate */
/*************************************************************************************************/
//让manager能够获取调用API所需要的数据
@protocol RTAPIManagerParamSourceDelegate <NSObject>
@required
- (NSDictionary *)paramsForApi:(RTAPIBaseManager *)manager;
@end
/*
当产品要求返回数据不正确或者为空的时候显示一套UI,请求超时和网络不通的时候显示另一套UI时,使用这个enum来决定使用哪种UI。(安居客PAD就有这样的需求,sigh~)
你不应该在回调数据验证函数里面设置这些值,事实上,在任何派生的子类里面你都不应该自己设置manager的这个状态,baseManager已经帮你搞定了。
强行修改manager的这个状态有可能会造成程序流程的改变,容易造成混乱。
*/
typedef NS_ENUM (NSUInteger, RTAPIManagerErrorType){
RTAPIManagerErrorTypeDefault, //没有产生过API请求,这个是manager的默认状态。
RTAPIManagerErrorTypeSuccess, //API请求成功且返回数据正确,此时manager的数据是可以直接拿来使用的。
RTAPIManagerErrorTypeNoContent, //API请求成功但返回数据不正确。如果回调数据验证函数返回值为NO,manager的状态就会是这个。
RTAPIManagerErrorTypeParamsError, //参数错误,此时manager不会调用API,因为参数验证是在调用API之前做的。
RTAPIManagerErrorTypeTimeout, //请求超时。RTApiProxy设置的是20秒超时,具体超时时间的设置请自己去看RTApiProxy的相关代码。
RTAPIManagerErrorTypeNoNetWork //网络不通。在调用API之前会判断一下当前网络是否通畅,这个也是在调用API之前验证的,和上面超时的状态是有区别的。
};
typedef NS_ENUM (NSUInteger, RTAPIManagerRequestType){
RTAPIManagerRequestTypeGet,
RTAPIManagerRequestTypePost,
RTAPIManagerRequestTypeRestGet,
RTAPIManagerRequestTypeRestPost
};