SweetREST 1.0.0

SweetREST 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2015年4月

Sergey Popov 维护。



SweetREST 1.0.0

  • Sergey Popov

SweetREST 是一个为 Cocoa 应用创建 http 请求服务 的微型库。该库允许发送常见的 http 请求,如 GETPOSTPUTPATCHHEADDELETE。这是惊人的 AFNetworking 的轻量级版本,增加了一些额外的功能,例如漂亮的 错误处理

示例

要开始发送请求,您只需要使用 NSURLSession 和您后端的 baseURL 进行 SweetREST 初始化。

NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
self.sweetRest = [[SPSweetRest alloc] initWithSession:session baseURL:[NSURL URLWithString:@"http://example.com/json/api/"]];

发送简单的 GET 请求。

NSDictionary *params = @{@"name" : @"serj"};

[self.sweetRest GET:@"person" params:params completion:^(id responseObject, NSError *error) {

    if(! error) {
        //Success
    }
    else {
        //Failure
    }

}];

错误处理

错误处理是该库的主要功能。与 AFNetworking 不同,SweetREST 在 NSError 中创建了与代码相对应的 HTTP 状态代码。例如,您的后端响应了 401 未授权,您可能需要处理它并过期认证令牌。

...

if (error.code == 401) {
    [self.sweetRest removeValueForHTTPHeaderField:@"XX-MY-SWEET-AUTH-TOKEN"];
}

一个功能是 SPSeweetRestDelegate 协议。该协议允许监听来自服务器的每个有效的(带有状态代码为 2xx 和 JSON 内容类型)响应

- (void)sweetRest:(SPSweetRest *)sweetRest didReceiveResponse:(NSHTTPURLResponse *)response
{
    // Ckeck for token
    NSString *token = response.allHeaderFields[@"AUTH-TOKEN"];

    //Status code
    NSInteger code = response.statusCode;

    // Do somthing here..
}

或任何失败响应

- (void)sweetRest:(SPSweetRest *)sweetRest didFailResponse:(NSHTTPURLResponse *)response error:(NSError *)error
{
    // Do somthing here
}

此外,您还可以提供一些自定义错误并接受每个响应

- (BOOL)sweetRest:(SPSweetRest *)sweetRest shouldAcceptResponse:(NSHTTPURLResponse *)response forObject:(id)responseObject provideError:(NSError **)error
{
    NSInteger code = response.statusCode;   
    if (code == 201) {
        // Provide some custom error
        NSDictionary *userInfo = @{NSLocalizedDescriptionKey : @"I do not like 201 status code!"};
        *error = [NSError errorWithDomain:SPSeweetRestErrorDomain code:777 userInfo:userInfo];
        return NO;
    }
    return YES;
}

许可证

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