Présentation de cinq bibliothèques de développement Web HTTP

L'une des tâches les plus importantes qu'un programmeur doit résoudre lors du développement de projets Web est d'organiser l'échange de données entre les parties client et serveur de ces projets. Cela peut ressembler à ceci: l'utilisateur appuie sur un certain bouton de la page ouverte dans le navigateur, le système répond par une demande au serveur, après quoi le serveur envoie à la page les données qu'il a demandées. Afin d'afficher ces données sur la page, sans les recharger, elles sont traitées, après quoi la page est mise à jour et l'utilisateur reçoit ce dont il a besoin.



La technologie AJAX est la pierre angulaire d'une telle interaction système, dans le cadre de laquelle elle utilise une instance d'objet XMLHttpRequest . Pour faciliter le travail des programmeurs avec AJAX et XMLHttpRequest , des bibliothèques spécialisées ont été créées qui offrent aux développeurs des interfaces pratiques, éliminant le besoin d'utiliser des mécanismes de bas niveau.

Le matériel, dont nous publions la traduction aujourd'hui, est consacré à l'analyse de cinq outils populaires pour travailler avec HTTP: Axios, Request, Superagent, Fetch et Supertest.

Axios


La bibliothèque Axios pour exécuter les requêtes HTTP est basée sur des promesses. Il peut être utilisé dans Node.js et les applications de navigateur. La bibliothèque prend en charge tous les navigateurs modernes, y compris IE8 +.

▍ Forces


  • Fonctionne dans l'environnement Node.js et dans les navigateurs.
  • Soutient les promesses.
  • Vous permet d'exécuter et d'annuler des demandes.
  • Vous permet de définir le délai de réponse.
  • Prend en charge la protection contre les attaques XSRF.
  • Permet d'intercepter les demandes et les réponses.
  • Prend en charge l'indication de la progression du téléchargement des données.
  • Largement utilisé dans les projets basés sur React et Vue.

▍ Faiblesses


  • La bibliothèque est assez difficile à utiliser.

Superagent


La bibliothèque Superagent , comme Axios, convient aux Node.js et aux navigateurs modernes. Il fournit au développeur une API simple et compréhensible, pratique à utiliser.

Pour exécuter une requête HTTP à l'aide de Superagent, appelez simplement la méthode d'objet de request appropriée:

 request   .get('')   .then(res => log(res))   .catch(err => log(err)) 

▍ Forces


  • Prend en charge les plugins.
  • Configurable.
  • Il a une belle interface pour faire des requêtes HTTP.
  • Prend en charge le chaînage de plusieurs appels pour terminer les requêtes.
  • Fonctionne dans l'environnement Node.js et dans les navigateurs.
  • Prend en charge l'affichage de la progression pour le téléchargement et le téléchargement de données.
  • Prend en charge le mécanisme d'encodage à transfert par blocs.
  • Prend en charge les rappels.
  • De nombreux plugins ont été développés pour cette bibliothèque.

▍ Faiblesses


  • Il possède une sorte d'API qui n'adhère à aucune norme.

Demande


La bibliothèque de requêtes , par rapport aux outils précédents examinés, est un outil simplifié pour exécuter les requêtes HTTP. Lorsque vous utilisez cette bibliothèque, vous devez écrire moins de code que lorsque vous travaillez avec d'autres bibliothèques. Il n'utilise pas de promesses, mais si vous avez besoin de cette fonctionnalité, vous pouvez utiliser la bibliothèque Request-Promise , qui implémente un wrapper autour de la bibliothèque Request et vous permet de travailler avec des promesses.

▍ Forces


  • Une API facile à utiliser.

▍ Faiblesses


  • La bibliothèque n'utilise pas de promesses.

Récupérer


Fetch n'est pas une bibliothèque, contrairement aux autres outils abordés dans cette revue. Il s'agit d'une API de navigateur standard, une alternative à XMLHttpRequest .

▍ Forces


  • Flexibilité et facilité d'utilisation.
  • L'utilisation de promesses, qui évite «l'enfer des rappels».
  • Prise en charge par tous les navigateurs modernes.
  • Suivre l'approche demande-réponse.
  • Syntaxe simple et agréable.
  • Pris en charge dans React Native.

▍ Faiblesses


  • Ne fonctionne pas dans un environnement serveur.
  • Il n'implémente pas certaines fonctionnalités disponibles dans les bibliothèques HTTP, telles que l'annulation d'une demande.
  • Ne contient pas de prise en charge intégrée des paramètres par défaut, tels que le mode de demande, les en-têtes et les informations d'identification.

Supertest


La bibliothèque Supertest est basée sur la bibliothèque Superagent. Il est conçu pour tester les serveurs HTTP construits sur la base de Node.js. Supertest permet aux développeurs d'accéder à leur propre API et à l'API de bas niveau fournie par la bibliothèque Superagent.

▍ Forces


  • Il a une API pratique.
  • Simplifie la construction des tests HTTP.
  • Il peut être utilisé conjointement avec des bibliothèques pour tester des projets tels que Chai.js et Mocha .

▍ Faiblesses


  • Ne fonctionne pas dans les navigateurs.

Résumé


Dans cet article, nous avons examiné plusieurs outils populaires pour travailler avec HTTP qui sont utiles aux développeurs JS qui créent des applications à l'aide des technologies de navigateur et des plateformes Node.js. Lors de la sélection d'une base pour le sous-système HTTP d'un certain projet, il est recommandé d'essayer d'abord plusieurs outils qui semblent appropriés, puis de prendre la décision finale.

Chers lecteurs! Quelles bibliothèques HTTP utilisez-vous?

Source: https://habr.com/ru/post/fr432634/


All Articles