Ich arbeite an einem neuen iOS-App-Projekt auf der mobilen Seite. Es gibt einige Architekturänderungen und es stellt sich heraus, dass wir uns auf eine benutzerdefinierte private API stützen müssen, die von der App, die wir erstellen, und auch von anderen Clients wie einer Website verwendet wird.
Die API, die entworfen wird, folgt dem Rest-Stil von ressourcenzentrierten URI- und CRUD-Operationen, die HTTP-Verben zugeordnet sind. Dinge wie:
GET www.example.com/books
DELETE www.example.com/books/482094
POST www.example.com/users/6793
Das Problem ist, dass dieser Stil häufig dazu führt, dass der mobile Client viele Anforderungen zum Laden eines einzelnen App-Bildschirms oder zum Verwalten einer einzelnen Benutzeroberflächenaktion ausführen muss. Dies führt dazu, dass sich die App 8 Sekunden lang im Lademodus befindet, bis sie alles Nötige hat. Eine langsame und nicht reagierende App.
Mobile Clients haben gravierende Einschränkungen in Bezug auf die Konnektivität. Daher sollten wir im Idealfall diese Art von Regel befolgen:
1 Bildschirm == 1 API-Aufruf
1 save == 1 API-Aufruf.
Es gibt viele Situationen, in denen Sie auf einen Kollisionskurs mit den REST-Konstruktionsprinzipien gebracht werden, zum Beispiel:
- Nehmen wir an, Ihre App ist seit einem Tag offline und Sie müssen mit vier Tabellen der Back-End-Datenbanken synchronisieren und benötigen einen Anruf wie
www.example.com/sync_everything?since=2015-07-24
- Nehmen wir an, es gibt einen Bildschirm, auf dem der Benutzer viele seiner Objekte bearbeiten kann, zum Beispiel Aufgaben in seiner Aufgabenliste ankreuzen kann. Es sollte eine Möglichkeit geben, alle diese Aufgabendatensätze in einem einzigen Stapel-API-Aufruf zu bearbeiten, anstatt nur einen API-Aufruf pro Bearbeitung.
- Nehmen wir an, es gibt einen Bildschirm, der Informationen aus den DB-Tabellen ORDER, SALESMEN und PRODUCT mischt. Ich sollte diese Daten in einem Aufruf anstelle von drei abrufen.
Das Risiko ist, dass wir möglicherweise die restloseste API und die nutzloseste nicht reagierende mobile App haben, die es gibt.
Die Sache ist, ich bin nur ein neuer Auftragnehmer dort und was ich brauche, ist etwas, das mir dabei hilft, diese Punkte zu verdeutlichen, einige Artikel aus angesehenen Quellen oder ähnliches. Hauptakteure, die für ihren mobilen Client Kompromisse mit dem REST-Stil eingehen (z. B .: Verwendung von Endpunkten mit zusammengesetzten API-Aggregaten).
Oder irgendeine Lösung für dieses allgemeine Problem. Vielen Dank!