阅读597 返回首页    go 阿里云


OBJECTC SDK 使用手册__使用SDK调用已开放API_SDK_API 网关-阿里云

1. 前言

本套程序是阿里云API网关团队提供给用户的API网关的HTTP底层通讯SDK,适用于在移动端调用已接入API网关的私有、公开API以及目前在数据市场上售卖的API。

本SDK实现了API网关的签名算法和一系列Http调用,解决用户的HTTP通讯问题,用户可以在本SDK上层包装自己的API。我们同时提供了封装好的framework形式的第三方库和源码。

如果您有定制化需求,可以直接把源码下载到你的项目中修改后使用;如果您只是简单的调用,直接使用我们提供封装好的framework版本即可。

源码所在地址为https://github.com/aliyun/api-gateway-demo-sign-objectc,源码的细节请点击进去查看。

本SDK具体提供了一下五种HTTP通讯接口:

  • Http Get
  • Http Post Form
  • Http Post Bytes
  • Http Put Bytes
  • Http Delete

封装好的framework的SDK在CloudApiSdk.framework文件夹内,文件的结构:

  • CloudApiSdk.framework
    • CloudApiSdk 封装好的SDK二进制文件,可同时在模拟器和真机中运行
    • Headers文件夹 可直接调用的头文件
      • AppConfiguration.h SDK的配置设置
      • CloudApiSdk.h Http工具类,负责发送HTTP请求
      • HttpConstant.h Http常量类

本封装好的SDK只支持iOS 6.0以上的平台。

2. 安装API网关 OBJECTC SDK

2.1 下载SDK

在API网关控制台左侧找到SDK及示例菜单,点击前往SDK下载页面。

根据页面提示查看使用手册或者前往下载SDK。需要注意区分代码示例及SDK,代码示例适用于不准备使用SDK的用户参考代码完成API调用工作,而SDK可以帮助用户简化API调用工作。

1

点击前往下载SDK链接后,浏览器会打开新页面,该页面为阿里云移动服务的SDK下载页面。在下载页面上勾选API网关,然后点击下载iOS版按钮,根据页面提示下载到API网关的OBJECTC SDK。

2

2.2 把SDK引入你的项目

您可以像引用其他第三方库一样引入本SDK到您的项目中去:

1, 把SDK的”CloudApiSdk.framework”文件夹下载到本地,复制到项目放置第三方的文件夹内;

2, 用Xcode打开iOS项目,点击”TARGETS”->”项目名称”->”Build Phases”->”Link Binary With Libraries”->”+”;

3

3, 在弹出来的选择Tab页中点击左下角的”Add Other…”,然后选择刚才复制进项目的”CloudApiSdk.framework”文件夹。

引入成功后可以在项目的Frameworks看到刚才添加进去的”CloudApiSdk.framework”,点击进去看,可以看到本文上面提到的三个头文件。

4

2.3 工程中引入头文件

  1. #import <CloudApiSdk/CloudApiSdk.h>

2.4 初始化SDK

本SDK需要将你的AppKey和AppSecret初始化后,才能正常使用,初始化的语句参考Demo/ApiClient.m的init方法:

  1. - (instancetype)init {
  2. self = [super init];
  3. if (self) {
  4. [[AppConfiguration instance] setAPP_KEY:@""];
  5. [[AppConfiguration instance] setAPP_SECRET:@""];
  6. }
  7. return self;
  8. }

2.4 调用SDK

然后可以调用CloudApiSdk类发送各种类型的Http请求:

2.4.1 API的包装类ApiClient调用CloudApiSdk实现HTTP通讯

  1. - (void) sendHttpGetDemo:(NSInteger) userId
  2. sex:(NSString *) sex
  3. age:(NSInteger) age
  4. completionBlock:(void (^)(NSData * , NSURLResponse * , NSError *))completionBlock
  5. {
  6. //定义Path
  7. NSString * path = @"/v3/getUserTest/[userId]";
  8. //定义PathParameter
  9. NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init];
  10. [pathParams setValue:[NSString stringWithFormat:@"%ld" , userId] forKey:@"userId"];
  11. //定义QueryParameter
  12. NSMutableDictionary *queryParams = [[NSMutableDictionary alloc] init];
  13. [queryParams setValue:sex forKey:@"sex"];
  14. //定义HeaderParameter
  15. NSMutableDictionary *headerParams = [[NSMutableDictionary alloc] init];
  16. [headerParams setValue:[NSString stringWithFormat:@"%ld" , age] forKey:@"age"];
  17. [[CloudApiSdk instance] httpGet: CLOUDAPI_HTTP
  18. host: HOST
  19. path: path
  20. pathParams: pathParams
  21. queryParams: queryParams
  22. headerParams: headerParams
  23. completionBlock: completionBlock];
  24. }

2.4.2 界面调用ApiClient实现业务逻辑

  1. - (IBAction)SendGetRequestAction {
  2. [[ApiClient instance] sendHttpGetDemo:10000094
  3. sex:@"boy"
  4. age:18
  5. completionBlock:^(NSData * _Nullable body , NSURLResponse * _Nullable response, NSError * _Nullable error) {
  6. dispatch_async(dispatch_get_main_queue(), ^{
  7. NSString *bodyString = [[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding];
  8. [[ResultModel instance] setResultString:[NSString stringWithFormat:@"Http Get Response object:%@nHttp Get Response Body:n%@" , response , bodyString]];
  9. [self performSegueWithIdentifier:@"getResultSegue" sender:nil];
  10. });
  11. }];
  12. }

3. 调用示例

本SDK提供图形调用示例给大家参考,调用示例代码说明如下在:https://github.com/aliyun/api-gateway-demo-sign-objectc/tree/master/sdk/demo,调用代码的说明如下。

  • Demo
    • ApiClient.m/ApiClient.h 测试API接口类,提供所有测试API的调用接口
    • ResultModel.m/ResultModel.h 调用结果缓存类
    • SendRequestViewController.m/SendRequestViewController.h 发送请求界面
    • ShowResultViewController/ShowResultViewController 显示服务器返回结果界面

如果在使用中遇到棘手的问题,请加入我们官方旺旺群来找我们,群号:1640106170

最后更新:2016-11-23 16:04:20

  上一篇:go Android SDK 使用手册__使用SDK调用已开放API_SDK_API 网关-阿里云
  下一篇:go API 网关服务条款__相关协议_API 网关-阿里云