2017-05-23 3 views
0

Notre application mobile a récemment commencé à avoir des problèmes de latence. La principale raison en est que, à chaque application ouverte, elle essaie de se synchroniser avec le serveur et déclenche ~ 10 appels de point de terminaison api pour récupérer chaque modèle.L'utilisation d'un seul point de terminaison API pour extraire plusieurs données de modèle est-elle une mauvaise pratique?

Par exemple,

GET /api/profile 
GET /api/locations/all 
GET /api/positions/all 
... 10 more 

Je suis en train de mettre en œuvre un api que le client peut appeler pour synchroniser plus facilement avec les données du serveur.

Say,

GET /api/user 

qui renvoie les données au format JSON comme:

{ 
    "profile": ..., 
    "locations": ..., 
    "positions": ..., 
    ... 
} 

Mais je crains que ce n'est pas une bonne pratique que je ne l'ai pas vu de nombreux logiciels qui est ce que ca.

L'utilisation d'un seul point de terminaison API pour extraire plusieurs données de modèle à la fois est-elle une mauvaise pratique?

Répondre

1

Le point de terminaison peut renvoyer tout ce qui a du sens pour vous. Vous êtes celui qui définit le modèle. La plus grande question dans votre cas est de savoir si cela va résoudre votre problème de latence. Est-ce qu'un point de terminaison fera mieux que 10? Ça dépend.

Une autre option à considérer est de ne pas toucher tous ces points de terminaison à chaque application ouverte. Les données peuvent-elles être mises en cache sur l'appareil pendant un certain temps et actualisées périodiquement?

Voilà quelques points à considérer.

+0

Merci pour la réponse. Certains détails ont été omis. En fait, les modèles ont une relation de dépendance, de sorte que tous ne peuvent pas être récupérés tous en même temps, mais de manière séquentielle. Notre logiciel a de sérieuses contraintes sur les données synchronisées avec le serveur à tout moment. –