5 façons de faire des requêtes HTTP avec Node.js et Async/Await
Temps de lecture: 3 minutes
Nous avons vu ensemble dans un précédent article comment faire des requêtes HTTP avec Node.js. Il est temps d’apprendre à faire la même chose avec async/await !
Comme dans l'autre article, nous utiliserons l'API JSON "Astronomy Picture of the Day" de la NASA parce que l'espace, c’est toujours aussi cool!
Pour suivre ce tutoriel, assurez-vous d'avoir des versions actualisées de Node.js et npm installées sur votre machine.
HTTP - la bibliothèque standard
Commençons par le module HTTP par défaut sans Promises et async/await.
Son avantage est de n’ajouter aucune dépendance au projet, mais il est moins simple d’utilisation que d’autres solutions que nous verrons plus loin.
Ce code envoie une requête GET à l'API de la NASA et affiche l'URL de l'image astronomique du jour et son explication dans la console :
La majorité des fonctionnalités des modules HTTP et HTTPS sont plutôt de bas niveau.
On reçoit la réponse par morceaux plutôt que de simplement fournir une fonction de rappel à exécuter dès que toutes les données sont reçues.
On doit également analyser les données de réponse manuellement. C'est assez simple si elles sont formatées en JSON comme ici, mais ça reste une étape supplémentaire.
Async/await n’étant pas disponible pour les requêtes HTTP effectuées avec cette bibliothèque, une approche pour faire face à cette problématique pourrait être d’utiliser des flux asynchrones.
Même si pour les cas un peu complexes il faudra fournir un effort supplémentaire pour lire toutes les données, HTTP est une bonne solution si l’on veut éviter d’ajouter des dépendances à son code ou que l’on a besoin des fonctionnalités bas niveau.
Got
Got est un excellent choix si vous cherchez une bibliothèque légère. Elle est conçue pour être simple d’utilisation et peut également être utilisée par défaut dans Twilio Functions.
Installer Got avec npm :
Parce que Got utilise Promises, vous verrez qu'il vous faut beaucoup moins de code pour faire la même chose que précédemment, tout en profitant des fonctionnalités async/await :
Cette bibliothèque n'analyse pas JSON par défaut, C’est pourquoi nous avons dû ajouter { json : true }
comme argument de la requête.
Got est une option parfaite si vous voulez juste une bibliothèque facile à utiliser et légère.
Axios
Axios est un autre client HTTP basé sur Promises qui fonctionne aussi bien dans le navigateur que dans node.js.
Pour installer Axios avec npm, entrez la commande suivante dans votre terminal :
Le code suivant affichera l’URL et l’explication de la photo astronomique du jour :
Axios lui, gère le JSON par défaut, et ça aussi c’est cool.
On peut même faire des requêtes simultanées avec axios.all
. Pour obtenir l’URL et la description de deux photos astronomiques en même temps :
SuperAgent
Tout comme Axios, SuperAgent est une autre librairie populaire. Utilisée principalement pour effectuer des requêtes asynchrones dans le navigateur, elle fonctionne également avec Node.js.
Installez SuperAgent avec la commande suivante :
Ce qui est pas mal avec SuperAgent, c'est les fonctions que l'on peut enchaîner sur des requêtes pour leur ajouter des paramètres, comme par exemple query(). Dans les exemples précédents, nous les avons ajoutés manuellement dans l'URL, mais vous pouvez voir que SuperAgent fournit une fonction pour le faire :
Tout comme avec Axios, vous n'avez pas à analyser vous-même la réponse de JSON quand vous utilisez SuperAgent.
node-fetch
node-fetch est un module léger qui porte la libraire du navigateur window.fetch à Node.js.
Comme avant, installez node-fetch avec ce qui suit :
Les versions récentes de cette bibliothèque utilisant des Promises, nous sommes en mesure d'utiliser la syntaxe async/await avec elle également :
Cette librairie embarque une fonction pour convertir la réponse en JSON, mais elle ne le fait pas automatiquement comme le font Axios et SuperAgent.
C'est une excellente lib pour les personnes habituées à utiliser l'API Fetch du navigateur.
Conclusion
Nous n’avons pas couvert tous les cas mais vous connaissez maintenant la base de quelques-unes des bibliothèques HTTP les plus populaires de Node.
Par ici si vous voulez apprendre à faire la même chose en Swift, Python et Ruby. Vous pouvez aussi lire nos quickstarts node.js pour mettre en pratique vos nouvelles compétences.
Valériane Venance est Developer Evangelist chez Twilio. Laissez lui un message à vvenance@twilio.com ou sur Twitter si vous avez codé un projet cool dont vous voulez discuter!
Articles associés
Ressources connexes
Twilio Docs
Des API aux SDK en passant par les exemples d'applications
Documentation de référence sur l'API, SDK, bibliothèques d'assistance, démarrages rapides et didacticiels pour votre langage et votre plateforme.
Centre de ressources
Les derniers ebooks, rapports de l'industrie et webinaires
Apprenez des experts en engagement client pour améliorer votre propre communication.
Ahoy
Le hub de la communauté des développeurs de Twilio
Meilleures pratiques, exemples de code et inspiration pour créer des expériences de communication et d'engagement numérique.