最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解iOS平臺調(diào)用后臺接口的正確姿勢

 更新時間:2019年10月25日 11:47:34   作者:妙手空虛  
這篇文章主要介紹了詳解iOS平臺調(diào)用后臺接口的正確姿勢,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

做iOS開發(fā),除非你做的是單機應(yīng)用,否則一定避免不了接口調(diào)用,也就是所謂的API調(diào)用。

而對于這方面,每個公司定義接口的格式不盡相同,從而導(dǎo)致我們的代碼沒法達到通用。

甚至你接私活的話,更會遇到五花八門的接口格式。那么有沒有一種通用的方式來處理這些不通用的格式呢?

我嘗試從變化的接口格式中找到不變的東西,把這些不變的東西進行可配置,從而形成以不變應(yīng)萬變的接口調(diào)用方式。
這些不變的東西,包括如下幾種:

  • 錯誤碼
  • 錯誤消息
  • 業(yè)務(wù)數(shù)據(jù)

而對于錯誤碼又可以分如下幾類:

  • 成功
  • 失敗
  • token失效

基于以上的分析,形成了一個開源庫,希望能在一定程度上方便大家的開發(fā)。

開源地址:https://github.com/wochen85/FKApiInvoker

下面進行使用的詳細說明:

FKApiInvoker

iOS 平臺網(wǎng)絡(luò)接口調(diào)用封裝

安裝

pod 'FKApiInvoker'

使用

1. 初始化配置,可以放在Appdelegate的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(nullable NSDictionary *)launchOptions方法中,或者其他你認(rèn)為合適的地方,假設(shè)后臺返回的json格式如下:

{"code":0,
"msg":"成功",
"data":{"name":"CHAT",
    "age":18}}

其中 code是錯誤碼(0代表處理成功,127代表token過期),msg是提示消息,data 是具體的業(yè)務(wù)數(shù)據(jù)

那么做如下配置:

FKApiInvokerConfig* config = [[FKApiInvokerConfig alloc] initWithBaseUrls:@[@"http://www.httpbin.org",@"http://www.httpbin.org",@"http://www.httpbin.org",@"http://www.httpbin.org"] commonHeaders:@{@"test": @"test"} respCodeKey:@"code" respMsgKey:@"msg" respDataKey:@"data" successCode:0 tokenExpiredCode:127];
  [[FKApiInvoker sharedInvoker] configInvoker:config];
  [FKApiInvoker sharedInvoker].tokenExpiredBlk = ^{
    //token失效,跳轉(zhuǎn)登錄頁面
  };

2. 調(diào)用后臺API

[FKApiInvoker fire:@"post" path:@"/personinfo/login" param:nil headers:headers body:body responseModelClass:[LoginResp class] success:^(LoginResp* model) {
    //成功處理
  } failure:^(NSError *error) {
    //失敗處理
  }];

3. 使用mock數(shù)據(jù)

[FKApiInvoker fireWithMockData:mockData method:@"post" path:@"/personinfo/login" param:nil headers:headers body:body responseModelClass:[LoginResp class] success:^(LoginResp* model) {
    //成功處理
  } failure:^(NSError *error) {
    //失敗處理
  }];

其他情況

1. 后臺返回的業(yè)務(wù)數(shù)據(jù)和錯誤碼、錯誤消息平級:

{"code":0,
  "msg":"成功",
  "name":"CHAT",
  "age":18}

則在初始化配置的時候改成這種:

FKApiInvokerConfig* config = [[FKApiInvokerConfig alloc] initWithBaseUrls:@[@"http://www.httpbin.org",@"http://www.httpbin.org",@"http://www.httpbin.org",@"http://www.httpbin.org"] commonHeaders:@{@"test": @"test"} respCodeKey:@"code" respMsgKey:@"msg" respDataKey:nil successCode:0 tokenExpiredCode:127];
  [[FKApiInvoker sharedInvoker] configInvoker:config];
  [FKApiInvoker sharedInvoker].tokenExpiredBlk = ^{
    //token失效,跳轉(zhuǎn)登錄頁面
  };

即respDataKey參數(shù)傳nil

2. 如果通用頭在初始化配置之后可能發(fā)生變化,這種情況常見于用戶登錄之后,通用頭里面需要加入形如token的字段
那么調(diào)用如下方法:

[[FKApiInvoker sharedInvoker] configCommonHeaders:@{@"token": @"token string"}];

3. 需要做其他更加靈活的json格式的http請求?

可以直接使用我寫的另一個庫:JsonModelHttp

事實上FKApiInvoker底層也是依賴的JsonModelHttp.

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS使用UICollectionView實現(xiàn)橫向滾動照片效果

    iOS使用UICollectionView實現(xiàn)橫向滾動照片效果

    這篇文章主要為大家詳細介紹了iOS使用UICollectionView實現(xiàn)橫向滾動照片效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • iOS通過多種方式創(chuàng)建控制器

    iOS通過多種方式創(chuàng)建控制器

    這篇文章主要為大家詳細介紹了iOS通過多種方式創(chuàng)建控制器的相關(guān)方法,感興趣的小伙伴們可以參考一下
    2016-04-04
  • IOS 常見的循環(huán)引用總結(jié)

    IOS 常見的循環(huán)引用總結(jié)

    這篇文章主要介紹了IOS 常見的循環(huán)引用總結(jié)的相關(guān)資料,循環(huán)引用,指的是多個對象相互引用時,使得引用形成一個環(huán)形,導(dǎo)致外部無法真正是否掉這塊環(huán)形內(nèi)存。其實有點類似死鎖,需要的朋友可以參考下
    2017-03-03
  • 詳解iOS 實現(xiàn)一對多代理方案

    詳解iOS 實現(xiàn)一對多代理方案

    本文主要介紹了iOS 實現(xiàn)一對多代理方案,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 詳解iOS開發(fā)中app的歸檔以及偏好設(shè)置的存儲方式

    詳解iOS開發(fā)中app的歸檔以及偏好設(shè)置的存儲方式

    這篇文章主要介紹了iOS開發(fā)中app的歸檔以及偏好設(shè)置的存儲方式,示例代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-12-12
  • iOS使用UIKeyInput自定義密碼輸入框的方法示例

    iOS使用UIKeyInput自定義密碼輸入框的方法示例

    這篇文章主要給大家介紹了關(guān)于iOS如何使用UIKeyInput自定義密碼輸入框的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • iOS當(dāng)多個網(wǎng)絡(luò)請求完成后執(zhí)行下一步的方法詳解

    iOS當(dāng)多個網(wǎng)絡(luò)請求完成后執(zhí)行下一步的方法詳解

    在多線程中,有時候我們會遇到一個界面同時有多個網(wǎng)絡(luò)請求(比如a,b,c,d四個網(wǎng)絡(luò)請求),在這四個個請求結(jié)束后,在請求到數(shù)據(jù)去做其他操作(UI更新等),下面這篇文章主要給大家介紹了關(guān)于iOS當(dāng)多個網(wǎng)絡(luò)請求完成后執(zhí)行下一步的相關(guān)資料,需要的朋友可以參考下。
    2017-12-12
  • Objective-C中字符串NSString的常用操作方法總結(jié)

    Objective-C中字符串NSString的常用操作方法總結(jié)

    這篇文章主要介紹了Objective-C中字符串NSString的常用操作方法總結(jié),Objective-C中NSString和NSMutableString這兩個類下包含了操作字符串的大多數(shù)方法,需要的朋友可以參考下
    2016-04-04
  • iOS Crash常規(guī)跟蹤方法及Bugly集成運用詳細介紹

    iOS Crash常規(guī)跟蹤方法及Bugly集成運用詳細介紹

    這篇文章主要介紹了iOS Crash常規(guī)跟蹤方法及Bugly集成運用詳細介紹的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • iOS應(yīng)用開發(fā)中AFNetworking庫的常用HTTP操作方法小結(jié)

    iOS應(yīng)用開發(fā)中AFNetworking庫的常用HTTP操作方法小結(jié)

    AFNetworking庫是Objective-C語言寫成的用于處理HTTP的第三方庫,在GitHub上開源并且一直在被更新和維護,下面就一起來看一下iOS應(yīng)用開發(fā)中AFNetworking庫的常用HTTP操作方法小結(jié)
    2016-05-05

最新評論

松江区| 博乐市| 铜梁县| 砀山县| 高密市| 于都县| 桓台县| 静海县| 措美县| 临邑县| 西华县| 吉安市| 冀州市| 荣成市| 临朐县| 礼泉县| 西峡县| 凤冈县| 太仆寺旗| 稷山县| 舞阳县| 六枝特区| 南部县| 永平县| 同仁县| 青浦区| 苍南县| 南溪县| 龙陵县| 竹北市| 建湖县| 湟中县| 盐津县| 宁南县| 息烽县| 昌邑市| 克东县| 太谷县| 图们市| 黄冈市| 深水埗区|