Je travaille sur un nouveau projet d'application iOS, côté mobile. Certains changements d'architecture sont en cours et il s'avère que nous devrons compter sur une API privée personnalisée qui sera utilisée par l'application que nous construisons et également par d'autres clients tels qu'un site Web.
L'API en cours de conception suit le style Rest des opérations URI et CRUD centrées sur les ressources mappées aux verbes HTTP. des choses comme:
GET www.example.com/books
DELETE www.example.com/books/482094
POST www.example.com/users/6793
Le problème est que ce style entraîne souvent la nécessité pour le client mobile de faire de nombreuses demandes pour charger un seul écran d'application ou gérer une seule action d'interface utilisateur. Cela conduit à l'application en mode de chargement pendant 8 secondes jusqu'à ce qu'elle ait tout le nécessaire. Une application lente et qui ne répond pas.
Les clients mobiles ont de sérieuses limitations en matière de connectivité et donc idéalement, nous devrions suivre ce genre de règle:
1 écran == 1 appel API
1 sauvegarde == 1 appel API.
Il existe de nombreuses situations où cela vous met sur une trajectoire de collision avec les principes de conception REST, par exemple:
- disons que votre application est hors ligne depuis un jour et que vous devez vous synchroniser avec quatre tables des bases de données principales et que vous avez besoin d'un appel comme
www.example.com/sync_everything?since=2015-07-24
- disons qu'il y a un écran où l'utilisateur peut éditer plusieurs de ses objets, par exemple en cochant des tâches dans sa liste de tâches. il devrait y avoir un moyen de modifier tous ces enregistrements de tâches en un seul appel d'API par lots plutôt qu'en un seul appel d'API par modification.
- disons qu'il y a un écran qui mélange les informations des tables db ORDER, SALESMEN et PRODUCT, je devrais obtenir ces données en un seul appel au lieu de trois.
le risque est que nous puissions nous retrouver avec l'API la plus reposante qui soit et aussi avec l'application mobile la plus inutile qui soit.
Le fait est que je ne suis qu'un nouvel entrepreneur là-bas et ce dont j'ai besoin, c'est de quelque chose qui m'aide à faire valoir ces points, de certains articles de sources bien respectées ou quelque chose comme ça. Les principaux acteurs faisant des compromis avec le style REST pour leur client mobile (par exemple: en utilisant des points de terminaison d'API d'agrégats composites).
Ou toute solution à ce problème général. Merci!