Sto lavorando a un nuovo progetto di app iOS, sul lato mobile. Alcuni cambiamenti nell'architettura stanno avvenendo e si scopre che dovremo fare affidamento su un'API privata costruita su misura che verrà utilizzata dall'app che stiamo costruendo e anche da altri client come un sito Web.
L'API in fase di progettazione segue lo stile Rest delle operazioni URI e CRUD incentrate sulle risorse mappate ai verbi HTTP. cose come:
GET www.example.com/books
DELETE www.example.com/books/482094
POST www.example.com/users/6793
Il problema è che questo stile porta spesso alla necessità per il client mobile di fare molte richieste per caricare una schermata di una singola app o gestire un'azione dell'interfaccia utente di un singolo utente. Ciò porta l'app in modalità di caricamento per 8 secondi fino a quando non ha tutto il necessario. Un'app lenta e che non risponde.
I client mobili hanno seri limiti quando si tratta di connettività e, idealmente, dovremmo seguire quel tipo di regola:
1 schermata == 1 chiamata API
1 salvataggio == 1 chiamata API.
Ci sono molte situazioni in cui questo ti mette in rotta di collisione con i principi di progettazione REST, ad esempio:
- supponiamo che la tua app sia rimasta offline per un giorno e devi sincronizzarti con quattro tabelle dei database back-end e hai bisogno di una chiamata come
www.example.com/sync_everything?since=2015-07-24
- diciamo che esiste una schermata in cui l'utente può modificare molti dei suoi oggetti, ad esempio spuntando le attività nella sua lista delle cose da fare. dovrebbe esserci un modo per modificare tutti quei record di attività in una singola chiamata API batch anziché una chiamata API per modifica.
- diciamo che c'è una schermata che mescola le informazioni dalle tabelle db ORDER, SALESMEN e PRODUCT, dovrei ottenere quei dati in una chiamata anziché tre.
il rischio è che potremmo finire con l'API più riposante che ci sia e anche l'app mobile non rispondente più inutile che ci sia.
Il fatto è che sono solo un nuovo imprenditore e quello di cui ho bisogno è qualcosa che mi aiuti a mettere in evidenza quei punti, alcuni articoli da fonti rispettate o qualcosa del genere. Principali attori che compromettono con lo stile REST per il proprio client mobile (ad es. Utilizzando endpoint API aggregati compositi).
O qualsiasi soluzione per questo problema generale. Grazie!