REST モデルを使用して Django バックエンドと非同期に通信する iOS アプリに使用するより良い設計パターンがあるかどうかについて、意見を求めています。
サーバーは現在、リクエストに対して 3 種類の応答を返すことができます。
- JSON オブジェクト
- サーバーステータスコード整数
- 長い Django エラー メッセージ
サーバーからのデータを必要とするアクションが iOS アプリで実行される場合、私の設計パターンは次のようになります。
- オブザーバーが通知センターに追加され、サーバーの応答を処理できるメソッドが指定されます
- メソッドはまとめて NSURLConnection を送信します
- NSURLConnection デリゲート メソッドは応答を受信し、解釈を行ってサーバー応答の種類を確認し、適切な通知を通知センターに投稿します。
- これにより、応答メソッドが実行され、応答が処理されます
このパターンに関する私の問題は、個々の要求と応答の種類を送受信するために記述されたメソッドが多数あることです。たとえば、アイテム リストを要求している場合、通知センターに複数のオブザーバーを追加する必要があります。1 つはユーザー リストを処理し、もう 1 つは空のユーザー リストを処理し、もう 1 つはエラーを処理します。次に、サーバーが送信する応答の種類に基づいて、適切なアクションを実行し、オブザーバーを削除するために、これら 3 つのそれぞれに対してカスタム メソッドを記述する必要があります。
さらに、NSURLConnection デリゲートは、受信した応答の種類 (受信したリスト内のアイテムの種類) を解釈しようとしているために、要求されたもののコンテキストがあまりないため、かなり複雑になります。サーバー メッセージが戻ってきたときに、間違った応答メソッドを呼び出さないでください。
私は iOS プログラミングと REST プログラミングの両方にかなり慣れていないため、明らかな何かが欠けている可能性があります。アドバイスやリソースへのリンクは大歓迎です。