API 0.1.1

API 0.1.1

测试测试
语言语言 Obj-CObjective C
许可 MIT
发布上次发布2017年3月

Andrew Boryk维护。



API 0.1.1

描述

API是为AFNetworking框架提供的包装器。API允许在应用程序内轻松创建API,节省时间。

示例

要运行示例项目,请在 cloning 仓库后,首先从 Example 目录运行pod install

需求

该库依赖于 pod 'AFNetworking'。另外

  • 需要自动引用计数(ARC)
  • 需要iOS 8.0或更高版本

安装

API可以通过CocoaPods使用。要安装它,只需将以下行添加到您的Podfile中

pod "API"

用法

API可以使用两种方式。您可以直接调用API类方法执行GET、POST、PUT和DEL请求;或者您可以通过APIRequest实例创建一个实例并通过对该实例调用GET、POST、PUT和DELETE请求。两种版本都将返回一个APIResponseObject实例,它具有HTTPStatusCode、成功数据、成功和失败任务以及由AFNetworking请求返回的NSError属性。

API类用法

要使用类方法进行API请求,可以调用类的GET、POST、PUT或DEL方法,并传入请求的URL、头信息和任何参数。该请求有一个带有APIResponseObject的完成块以及如果有错误还会返回NSError。对于POST和GET请求,还有进度块可用。

// GET request for API
+ (void)GET:(NSString *)url header:(NSDictionary *)header parameters:(NSDictionary *)params progress:(APIProgressBlock)progressBlock completion:(APIResponseBlock)completionBlock;

// POST request for API
+ (void)POST:(NSString *)url header:(NSDictionary *)header parameters:(NSDictionary *)params progress:(APIProgressBlock)progressBlock completion:(APIResponseBlock)completionBlock;

// PUT request for API
+ (void)PUT:(NSString *)url header:(NSDictionary *)header parameters:(NSDictionary *)params completion:(APIResponseBlock)completionBlock;

// DEL request for API
+ (void)DEL:(NSString *)url header:(NSDictionary *)header parameters:(NSDictionary *)params completion:(APIResponseBlock)completionBlock;

APIRequest实例用法

作为替代,您可以使用APIRequest对象的实例来执行API请求。在此对象初始化时,可以传入完整的URL或URL的各个部分(在这种情况下包括基本URL、版本、API密钥和相对字符串)。此外,您还可以在初始化期间传入头信息和参数。有大量选项可供选择和组合这些部分。

// Initialize an APIRequest with a url, params, and header
- (instancetype)initWithURL:(NSString *)url params:(NSDictionary *)params header:(NSDictionary *)header;

// Initialize an APIRequest with a base and relativePath, along with: version, apiKey, params, header
- (instancetype)initWithBase:(NSString *)base version:(NSString *)version apiKey:(NSString *)apiKey relativePath:(NSString *)relativePath params:(NSDictionary *)params header:(NSDictionary *)header;

创建APIRequest实例后,可以通过在实例上调用GET、POST、PUT和DELETE方法,或者通过将APIRequest传递给GET、POST、PUT和DELETE类方法来进行API请求。这两种方法都可用以满足个人喜好。GET和POST请求也有进度可用。

#pragma mark - Instance Methods

// Make an APIRequest with specified type
- (void)request:(ABAPIRequestType)type completion:(APIResponseBlock)completionBlock;

// Make a GET APIRequest
- (void)GET:(APIResponseBlock)completionBlock;

// Make a POST APIRequest
- (void)POST:(APIResponseBlock)completionBlock;

// Make a PUT APIRequest
- (void)PUT:(APIResponseBlock)completionBlock;

// Make a DELETE APIRequest
- (void)DELETE:(APIResponseBlock)completionBlock;

// Make a GET APIRequest with progress block
- (void)GET:(APIResponseBlock)completionBlock withProgress:(APIProgressBlock)progressBlock;

// Make a GET APIRequest with progress block
- (void)POST:(APIResponseBlock)completionBlock withProgress:(APIProgressBlock)progressBlock;

#pragma mark - Class Methods

// Make a request using the given APIRequest with the specified type
+ (void)request:(APIRequest *)request withType:(ABAPIRequestType)type completion:(APIResponseBlock)completionBlock;

// Make a GET request using the given APIRequest
+ (void)GET:(APIRequest *)request completion:(APIResponseBlock)completionBlock;

// Make a POST request using the given APIRequest
+ (void)POST:(APIRequest *)request completion:(APIResponseBlock)completionBlock;

// Make a PUT request using the given APIRequest
+ (void)PUT:(APIRequest *)request completion:(APIResponseBlock)completionBlock;

// Make a DELETE request using the given APIRequest
+ (void)DELETE:(APIRequest *)request completion:(APIResponseBlock)completionBlock;

// Make a GET request using the given APIRequest with a progress block
+ (void)GET:(APIRequest *)request completion:(APIResponseBlock)completionBlock withProgress:(APIProgressBlock)progressBlock;

// Make a POST request using the given APIRequest with a progress block
+ (void)POST:(APIRequest *)request completion:(APIResponseBlock)completionBlock withProgress:(APIProgressBlock)progressBlock;

使用默认API值

如果您想为Base、Version和APIKey设置默认API值,这些值可以在Info.plist文件中设置,例如:

alt tag

可以使用这些值来创建APIRequest,如下所示:

APIRequest *request = [[APIRequest alloc] initWithBase:[API base] version:[API version] apiKey:[API apiKey] relativePath:@"/test/"];

自定义AFHTTPSessionManager和AFSecurityPolicy

AFHTTPSessionManager和AFSecurityPolicy已配置为默认设置。如果您想根据自己的喜好自定义这些设置,可以在“API.m”文件中调整“requestManagerWithHeader:”方法中的管理器和策略设置。

作者

andrewboryk,[email protected]

许可证

API可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。