2016-01-13 44 views
1

我有以下設計模式查詢問題。我有一個PHP的Web服務,我想從中執行,登錄授權和SQL操作,一些使用NSDictionary響應,一些使用BOOL響應。iOS網絡API設計模式想法?

我有設計模式的搜索和打擊這樣的:Best architectural approaches for building iOS networking applications (REST clients)

現在雖然這個職位是非常有趣的,我不認爲我需要什麼那麼複雜。我已經開始與一個單獨的對象爲assetDBConnection(這是在下面的代碼self.delegate],但我不知道這是否是最好的主意。

我能想到有我assetDBConnection抽象的唯一途徑從我APIWebRetrieve數據檢索走就是拉出來,從響應比較字符串。這意味着在PHP服務水平分爲不同的類型,比如:type =「登錄」分組的響應,等等等等。

-(void)APIWebRetrieveFinished:(APIWebRetrieve *)api 
{ 
    NSLog(@"api:%@",[api description]); 
    NSLog(@"%@",api.dataString); 
    NSError *error; 
    if (api.dataString) { 
     NSDictionary *results=[NSJSONSerialization JSONObjectWithData:[api.dataString dataUsingEncoding:NSStringEncodingConversionAllowLossy] 
            options:NSJSONReadingMutableContainers 
             error:&error]; 

     if ([[results objectForKey:@"type"] isEqualToString:@"logon"]){ 
      if ([results objectForKey:@"response"]){ 
       [self.delegate loginOK]; 
      }else{ 
       [self.delegate loginFail]; 
      } 
     } 
    } 
} 

任何幫助讚賞。

更新: 好吧,這一定很沉悶。沒有任何反應。我已經開始在服務中添加另一個層。我很喜歡這樣的事實,我現在有這樣的代碼彈出:

#import "AssetDBConnection.h" 
#import "AssetDBServiceLogon.h" 

@implementation AssetDBConnection 

-(BOOL)loginWithUsername:(NSString*)user andPassword:(NSString*)password 
{ 
    [AssetDBService logonWithUsername:user password:password andDelegate:self]; 
} 

我只是希望這是朝着正確的方向!

+0

** bold **我去的是一個APIWebRetrieve類,它執行Web調用並返回一個JSON對象給一個(微 –

回答

0

風滾草!

因此,爲什麼我儘管我可能會發布我自己的答案。即我所做的實施細節。

有一個APIWebRetrieve類,它爲所有微服務(??我不太確定這是否是正確的術語)進行POST Web調用,例如GetAssetDetails,MoveAsset,CreateFaultForAsset。 POST調用具有操作類型,例如=「asset-details」,並將JSON對象(轉換爲NSDictionary)返回給GetAssetDetails對象,然後返回與原始調用類型具有相同名稱的鍵的數據內容。然後我將它返回給AssetDBConnection Singleton,然後將其傳回給單例DBConnection類的委託。

我會嘗試和借鑑這個...

     CallingViewController 
           | 
           | 
           | 
    ------------AssetDBConnection (Singleton)------------- 
    |   |   |   |     | 
GetAssetDetail AssetFault OtherMS OtherMS   OtherMS 
Instance  Instance Instance Instance  Instance 
    |    |    |   |    | 
APIWebretrieve APIWebretrieve APIWeb.... APIWeb... APIWeb... 
Instance   Instance  Instance Instance Instance 

的|性格幾乎代表了頂級是下級的代表。

這個實現看起來如何? (回答一個問題,我會被擊落)

那麼不管是否答案,這是myAnswer。

歡呼聲