LiteAPI 0.1

LiteAPI 0.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2017年1月

Softwind Tang 维护。



  • 作者:
  • Softwind Tang

介绍

一个实现了基本 RPC 需求的轻量级 API 框架。我们使用链式编码风格来提供方法调用的便利性。我们涵盖了 iOS 客户端与您的后端之间的 http/https 请求的大多数情况。

功能

  • 存储一个模板,导入它并修改很少的参数,然后调用一个 http 请求。
  • 大多数 http 请求的参数可以在一个方法中修改。这很方便且简短。
  • 每个请求都有两个生命周期回调,分别是 willStartdidFinish
  • 通过设置一个标志来使回调分发到当前/main/后台线程。
  • 热时 API 环境交换。

待办事项

  • 文件转换支持。
  • JSON/XML/... 到模型的转换支持。
  • 更多...

用法

创建您的 API 模板


- (void)createYourAPITemplate {
    [LA createTemplate:^(LARequestMaker *maker) {    
        maker.host(@"http://your-host").version(@"v1").method(LAMethodGET);
        maker.post(LAPostStyleForm).sync(NO).response(LAResponseStyleJSON);
        maker.willStart.delegate(self, @selector(sign:));
    }
        withIdentifier:@"template"
              onStatus:LAStatusProduction];
}

- (NSURLRequest *)sign:(NSMutableURLRequest *)request {
    //do your sign
    return request;
}

调用您的 API


- (void)invokeYourAPI {
    [LA invokeRequest:^(LARequestMaker *maker) {
        maker.import(@"template").path(@"/ping");
        maker.didFinish.thread(LAThreadBackground).block(^id(LAResponse *response){
            NSLog(@"%@", response.JSON);
            return nil;
        });
    }];
}

或者您可能不想使用块


- (void)invokeYourAPI {
    [LA invokeRequest:^(LARequestMaker *maker) {
        maker.import(@"template").path(@"/ping");
        maker.didFinish.thread(LAThreadBackground).delegate(self, @selector(didFinish:));
    }];
}

- (id)didFinish:(LAResponse *)response {
    //do your business
    return nil;
}


切换您的 API 状态


- (void)example {
    [LA createTemplate:^(LARequestMaker *maker) {    
        maker.import(@"template").host(@"http://your-beta-host");
    }
        withIdentifier:@"template"
              onStatus:LAStatusBeta];
    [LA switchStatusTo:LAStatusBeta];
}