Sto lavorando a un nuovo progetto per app iOS, sul lato mobile. Alcuni cambiamenti di architettura stanno accadendo e si scoprirà che dovremo fare affidamento su un'API privata personalizzata che verrà utilizzata dall'app che stiamo costruendo e anche da altri client come un sito web.
L'API che viene progettata segue lo stile Rest di operazioni URI centrate sulle risorse e CRUD 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à che il client mobile faccia molte richieste per caricare una singola schermata dell'app o gestire un'azione dell'interfaccia utente singola. Questo porta l'app in modalità di caricamento per 8 secondi finché non ha tutto il necessario. Un'app lenta e non reattiva.
I client mobili hanno serie limitazioni quando si tratta di connettività e quindi idealmente, dovremmo seguire questo 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, per esempio:
- diciamo che la tua app è offline da un giorno e devi eseguire la sincronizzazione con quattro tabelle dei database di back-end e hai bisogno di una chiamata come %codice%
- diciamo che c'è una schermata in cui l'utente può modificare molti dei suoi oggetti, ad esempio ticchettando le attività nella sua lista di cose da fare. dovrebbe esserci un modo per modificare tutti i record di attività in un'unica chiamata API batch piuttosto che una chiamata API per modifica.
- diciamo che c'è uno schermo mescola le informazioni dalle tabelle db ORDINE, VENDITE e PRODOTTO, i dovrebbe ottenere quei dati in una chiamata invece di tre.
il rischio è che potremmo ritrovarci con l'API più riposante che ci sia e anche l'app mobile più insensibile e inutile che ci sia.
Il fatto è che sono solo un nuovo appaltatore lì e quello di cui ho bisogno è qualcosa che mi aiuti a rendere quei punti, alcuni articoli da fonti ben rispettate o qualcosa del genere. Principali giocatori che hanno compromesso con lo stile REST per il loro client mobile (ad esempio utilizzando punti finali dell'API di aggregazione composita).
O qualsiasi soluzione per questo problema generale. Grazie!