Nous développons une API Rest pour le site Web de commerce électronique qui sera utilisée par les applications mobiles.
Dans la page d'accueil d'une application, nous devons appeler plusieurs ressources telles que Sliders, Top Brands, Best Selling Products, Trending Products etc.
Deux options pour effectuer des appels API:
Appel unique:
www.example.com/api/GetAllInHome
Appels multiples:
www.example.com/api/GetSliders
www.example.com/api/GetTopBrands
www.example.com/api/GetBestSellingProducts
www.example.com/api/GetTrendingProducts
Quelle est la meilleure approche pour la conception d'une API de repos - appel simple ou multiple, expliquez les avantages et les inconvénients?
Laquelle prendra plus de temps pour répondre à la demande?
la source
TL; DR: Toutes les autres considérations d'application mises à part, effectuer un seul appel serait plus rapide que d'effectuer plusieurs appels. L'exécution des appels de manière asynchrone peut réduire le temps global nécessaire pour terminer une opération donnée du point de vue de votre utilisateur (ce qui pourrait bien être tout ce dont vous avez besoin), mais dans l'ensemble, le temps nécessaire serait encore plus long pour plusieurs appels.
Dans votre cas cependant, je ne suis pas sûr que ce soit l'histoire complète.
Les API REST sont un terme légèrement ambigu, en raison de diverses interprétations du document qui ont rendu l'idée populaire. Cependant, même par l'interprétation la plus libérale de ce qui constitue une API REST, ce que vous avez ne correspond pas vraiment.
Le principe de base est que vous disposez d'une ressource sur laquelle vous souhaitez effectuer une action. L'URI identifie la ressource qui vous intéresse et vous utiliseriez normalement les verbes HTTP pour indiquer ce que vous voulez faire pour cette ressource.
Dans votre cas spécifique, toutes vos méthodes ont le mot «get» dans leur nom. Vous devez modifier le verbe utilisé dans la demande HTTP pour indiquer que vous souhaitez «obtenir» la ressource disponible à cet emplacement.
Votre schéma d'URI doit représenter la hiérarchie logique des ressources que vous souhaitez mettre à la disposition des utilisateurs de votre API, donc dans votre cas, j'envisagerais d'utiliser quelque chose comme
/api/products?category=sliders
pour filtrer votre collection de produits. Cela signifie que lorsque les clients souhaitent obtenir tous vos produits, ils peuvent simplement omettre la chaîne de requête.la source
url
pour l'API, mais la demande de ressources différentes doit être effectuée à l'aide de la chaîne de requête? , vérifiez également cela .keep-alive
ne supprimera pas complètement cela.questions
vous voyez que l'URI est/questions
, lorsque vous cliquez sur l'un de vos tags préférés, l'URI est/questions/tagged/<tagname>