閱讀597 返回首頁    go 阿裏雲 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 網關-阿裏雲