モバイル側で、新しいiOSアプリプロジェクトに取り組んでいます。いくつかのアーキテクチャの変更が行われているため、構築中のアプリやWebサイトなどの他のクライアントが使用するカスタムビルドのプライベートAPIに依存する必要があります。
設計されているAPIは、HTTP動詞にマップされるリソース中心のURIおよびCRUD操作のRestスタイルに従います。次のようなもの:
GET www.example.com/books
DELETE www.example.com/books/482094
POST www.example.com/users/6793
問題は、このスタイルでは、多くの場合、モバイルクライアントが単一のアプリ画面の読み込みや単一のユーザーUIアクションの管理を行う必要が生じることです。これにより、必要なものがすべて揃うまで、アプリは8秒間ロードモードになります。低速で応答しないアプリ。
接続に関しては、モバイルクライアントには重大な制限があるため、理想的には次のようなルールに従う必要があります。
1画面== 1 API呼び出し
1保存== 1 API呼び出し。
これにより、REST設計の原則との衝突コースに入る多くの状況があります。例:
- アプリが1日間オフラインで、バックエンドデータベースの4つのテーブルと同期する必要があり、次のような呼び出しが必要だとします
www.example.com/sync_everything?since=2015-07-24
- ユーザーが自分のオブジェクトの多くを編集できる画面があるとしましょう。たとえば、todoリストでタスクをチェックします。編集ごとに1つのAPI呼び出しを行うのではなく、1つのバッチAPI呼び出しですべてのタスクレコードを編集する方法が必要です。
- ORDER、SALESMEN、およびPRODUCT dbテーブルからの情報を混合する画面があるとしましょう。3つではなく1つの呼び出しでそのデータを取得する必要があります。
リスクは、最も安らかなAPIが存在し、また、最も役に立たない無反応のモバイルアプリが存在する可能性があることです。
問題は、私はただの新しい請負業者であり、私が必要なのは、私がそれらのポイントを作るのに役立つもの、尊敬される情報源からの記事、またはそのようなものです。モバイルクライアントのRESTスタイルで妥協している主要なプレーヤー(例:複合集計APIエンドポイントの使用による)。
または、この一般的な問題の解決策。ありがとう!