This commit is contained in:
2022-03-21 11:16:38 +08:00
commit e89e807c64
1040 changed files with 284164 additions and 0 deletions

View File

@@ -0,0 +1,131 @@
//
// PhalApiClient.h
// PhalApiClientDemo
//
// Created by Aevit on 15/10/17.
// Copyright © 2015年 Aevit. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "PhalApiClientFilter.h"
#if 1
# define PALog(x, ...) NSLog(x, ## __VA_ARGS__);
#else
# define PALog(x, ...)
#endif
typedef void(^HttpCompleteBlock)(id resultObject);
typedef void(^HttpFailureBlock)(id error);
typedef void(^FormDataBlock)(id formData);
@interface PhalApiClient : NSObject
@property (nonatomic, copy) NSString *host;
@property (nonatomic, copy) NSString *service;
@property (nonatomic, strong) NSMutableDictionary *params;
@property (nonatomic, assign) float timeout;
@property (nonatomic, strong) PhalApiClientFilter *filter;
#pragma mark - generate a client
/**
* 生成单例
*
* @return 单例PhalApiClient
*/
+ (PhalApiClient*)sharedClient;
/**
* 生成非单例
*
* @return 非单例PhalApiClient
*/
+ (PhalApiClient*)create;
#pragma mark - configure url and params
/**
* 重复查询时须重置请求状态,包括接口服务名称、接口参数和超时时间
*
* @return PhalApiClient实例
*/
- (PhalApiClient*)reset;
/**
* 设置接口域名
* 如果整个客户端只有一个接口host可以在"commonInit"方法设置好host这样外部就可以不用调用withHost方法了
*
* @param host 域名
*
* @return PhalApiClient实例
*/
- (PhalApiClient*)withHost:(NSString*)host;
/**
* 设置将在调用的接口服务名称Default.Index
*
* @param service 接口服务名称
*
* @return PhalApiClient实例
*/
- (PhalApiClient*)withService:(NSString*)service;
/**
* 设置接口参数,此方法是唯一一个可以多次调用并累加参数的操作
*
* @param params 参数
*
* @return PhalApiClient实例
*/
- (PhalApiClient*)withParams:(NSDictionary*)params;
/**
* 设置过滤器与服务器的DI().filter对应
*
* @return PhalApiClient实例
*/
- (PhalApiClient*)withFilter:(PhalApiClientFilter*)filter;
/**
* 设置超时时间,单位毫秒
*
* @param timeout 超时时间,单位秒
*
* @return PhalApiClient实例
*/
- (PhalApiClient*)withTimeout:(float)timeout;
#pragma mark - request
/**
* 发起接口请求POST请求
*
* @param completeBlock 请求成功的回调
* @param failureBlock 请求失败的回调
*
* @return 请求实例
*/
- (id)request:(HttpCompleteBlock)completeBlock failureBlock:(HttpFailureBlock)failureBlock;
/**
* 发起接口请求(提交表单)
*
* @param formDataBlock 表单内容
* @param completeBlock 请求成功的回调
* @param failureBlock 请求失败的回调
*
* @return 请求实例
*/
- (id)requestWithFormDataBlock:(FormDataBlock)formDataBlock completeBlock:(HttpCompleteBlock)completeBlock failureBlock:(HttpFailureBlock)failureBlock;
#pragma mark - utils
/**
* 以get形式打印整个url方便服务端开发人员调试
*
* @return 整个url
*/
- (NSString*)printTotalUrlStr;
@end