菜鸟教程小白 发表于 2022-12-13 13:36:35

iOS 网络 API 设计模式的想法?


                                            <p><p>我有以下设计模式查询问题。我有一个 PHP 网络服务,我想从中执行、登录授权和 SQL 操作,有些带有 NSDictionary 响应,有些带有 BOOL 响应。</p>

<p>我搜索了设计模式并点击了这个:<a href="https://stackoverflow.com/questions/24162051/best-architectural-approaches-for-building-ios-networking-applications-rest-cli" rel="noreferrer noopener nofollow">Best architectural approaches for building iOS networking applications (REST clients)</a> </p>

<p>虽然这篇文章很有趣,但我认为我不需要这么复杂的东西。我从作为assetDBConnection 的单例对象开始(在下面的代码中是self.delegate),但我不知道这是否是最好的主意。</p>

<p>我能想到从我的 APIWebRetrieve 数据检索器中抽象出我的assetDBConnection 的唯一方法是从响应中提取并比较字符串。这意味着将 PHP 服务级别的响应分组为类型,例如type="logon",等等等等。</p>

<pre><code>-(void)APIWebRetrieveFinished:(APIWebRetrieve *)api
{
    NSLog(@&#34;api:%@&#34;,);
    NSLog(@&#34;%@&#34;,api.dataString);
    NSError *error;
    if (api.dataString) {
      NSDictionary *results=
                                    options:NSJSONReadingMutableContainers
                                    error:&amp;error];

      if ([ isEqualToString:@&#34;logon&#34;]){
            if (){
                ;
            }else{
                ;
            }
       }
    }
}
</code></pre>

<p>任何帮助表示赞赏。</p>

<p><strong>更新:</strong>
好吧,这一定很无聊。没有反应。我已经开始添加另一个层,称为服务。我非常喜欢我现在弹出这种代码的事实:</p>

<pre><code>#import &#34;AssetDBConnection.h&#34;
#import &#34;AssetDBServiceLogon.h&#34;

@implementation AssetDBConnection

-(BOOL)loginWithUsername:(NSString*)user andPassword:(NSString*)password
{
    ;
}
</code></pre>

<p>我只希望这是朝着正确的方向发展!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><strong>风滚草!</strong></p>

<p>因此,为什么我不妨发布自己的答案。即我所做的实现细节。</p>

<p>有一个 APIWebRetrieve 类对所有微服务进行 POST 网络调用(??我不太确定这是正确的术语),例如GetAssetDetails、MoveAsset、CreateFaultForAsset。 POST 调用具有操作类型,例如 =“asset-details”,并将 JSON 对象(转换为 NSDictionary)返回给 GetAssetDetails 对象,该对象然后返回与原始调用类型同名的键的数据内容。然后我将其返回到 AssetDBConnection Singleton,然后将其传递回单例 DBConnection 类的委托(delegate)。</p>

<p>我会试着画这个……</p>

<pre><code>                     CallingViewController
                              |
                              |
                              |
------------AssetDBConnection (Singleton)-------------
|            |          |         |                  |
GetAssetDetailAssetFault   OtherMSOtherMS         OtherMS
Instance       Instance    InstanceInstance      Instance
|            |            |         |            |
APIWebretrieve APIWebretrieve APIWeb....APIWeb...   APIWeb...
Instance         Instance      Instance    Instance    Instance
</code></pre>

<p>该 |字符几乎代表了上层是下层的代表。</p>

<p>这个实现看起来如何? (哎呀回答中的问题,我会被击落)</p>

<p>不管是答案,这都是我的答案。</p>

<p>干杯</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 网络 API 设计模式的想法?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/34775090/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/34775090/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 网络 API 设计模式的想法?