J'essaie actuellement d'optimiser rapidement la récupération des données via l'API distante.
Je l'utilise de cette façon:
$response = wp_remote_get('https://some-api.com/endpoint');
$response_body = wp_remote_retrieve_body($response);
$data = json_decode($response_body, true);
Il retourne un tableau de données que je parcourt et enregistre dans des variables appropriées avec lesquelles j'insère ensuite les données à l'endroit où je souhaite les insérer.
Tout cela se fait via AJAX, de sorte que les données sont insérées de manière dynamique.
Le tout prend environ 400-600ms. Mais si j'essaie d'accéder directement au point de terminaison de l'API en collant l'URL de l'API dans la barre d'URL de mon navigateur, cela prend environ 50 ms. Est-ce que le json_decode
& enregistrer et sortir des variables compte pour les 400-500 autres? Existe-t-il un autre moyen de réduire l'impact du temps de chargement?
Le moyen le plus performant de récupérer des données d'API distantes estde ne pas le récupérer du tout. Ainsi, utilisez API transitoires ou WP Cache d'objets pour enregistrer vos résultats calculés pour une utilisation ultérieure et éviter d'appeler une API externe (et des calculs ultérieurs) lors de chaque requête ultérieure. De plus, l'extraction, l'invalidation et la régénération de ces données peuvent être effectuées en arrière-plan, mais il s'agit d'une technique avancée qui dépendra beaucoup de votre architecture actuelle et de votre cas d'utilisation spécifique.
La différence 50ms vs 500ms provient de:
La plupart du temps est consacré aux 3 premières étapes, pas aux 2 dernières. Vous pouvez profiler votre code pour voir l'image complète.