Eine der wichtigsten Aufgaben, die ein Programmierer bei der Entwicklung von Webprojekten lösen muss, ist die Organisation des Datenaustauschs zwischen Client- und Serverteilen solcher Projekte. Es kann so aussehen: Der Benutzer drückt eine bestimmte Schaltfläche auf der im Browser geöffneten Seite, das System antwortet mit einer Anfrage an den Server, wonach der Server der Seite die angeforderten Daten sendet. Um solche Daten auf der Seite anzuzeigen, ohne sie erneut zu laden, werden sie verarbeitet. Anschließend wird die Seite aktualisiert und der Benutzer erhält, was er benötigt.

Die AJAX-Technologie ist der Eckpfeiler einer solchen Systeminteraktion, bei deren Anwendung eine Instanz des
XMLHttpRequest
Objekts verwendet wird. Um Programmierern die Arbeit mit AJAX und
XMLHttpRequest
erleichtern, wurden spezielle Bibliotheken erstellt, die Entwicklern bequeme Schnittstellen bieten und die Verwendung von Mechanismen auf niedriger Ebene überflüssig machen.
Das Material, dessen Übersetzung wir heute veröffentlichen, ist der Analyse von fünf gängigen Tools für die Arbeit mit HTTP gewidmet: Axios, Request, Superagent, Fetch und Supertest.
Axios
Die
Axios- Bibliothek zum Ausführen von HTTP-Anforderungen basiert auf Versprechungen. Es ist für die Verwendung in Node.js und Browseranwendungen geeignet. Die Bibliothek unterstützt alle modernen Browser, einschließlich IE8 +.
▍ Stärken
- Funktioniert in der Node.js-Umgebung und in Browsern.
- Unterstützt Versprechen.
- Ermöglicht das Ausführen und Abbrechen von Anforderungen.
- Ermöglicht das Festlegen des Antwortzeitlimits.
- Unterstützt den Schutz vor XSRF-Angriffen.
- Ermöglicht das Abfangen von Anforderungen und Antworten.
- Unterstützt die Anzeige des Fortschritts beim Hochladen von Daten.
- Weit verbreitet in Projekten, die auf React und Vue basieren.
▍ Schwächen
- Die Bibliothek ist ziemlich schwer zu benutzen.
Superagent
Die
Superagent- Bibliothek eignet sich wie Axios für Node.js und moderne Browser. Es bietet dem Entwickler eine einfache und verständliche API, mit der bequem gearbeitet werden kann.
Um eine HTTP-Anforderung mit Superagent auszuführen, rufen Sie einfach die entsprechende
request
:
request .get('') .then(res => log(res)) .catch(err => log(err))
▍ Stärken
- Unterstützt Plugins.
- Konfigurierbar.
- Es hat eine schöne Schnittstelle für HTTP-Anfragen.
- Unterstützt die Verkettung mehrerer Anrufe, um Abfragen abzuschließen.
- Funktioniert in der Node.js-Umgebung und in Browsern.
- Unterstützt die Fortschrittsanzeige zum Hoch- und Herunterladen von Daten.
- Unterstützt Chunked-Transfer-Codierungsmechanismus.
- Unterstützt Rückrufe.
- Für diese Bibliothek wurden viele Plugins entwickelt.
▍ Schwächen
- Es hat eine Art API, die keinen Standards entspricht.
Anfrage
Die
Anforderungsbibliothek ist im Vergleich zu den zuvor getesteten Tools ein vereinfachtes Tool zum Ausführen von HTTP-Anforderungen. Wenn Sie diese Bibliothek verwenden, müssen Sie weniger Code schreiben als bei der Arbeit mit anderen Bibliotheken. Es werden keine Versprechen verwendet. Wenn Sie diese Funktion benötigen, können Sie die
Request-Promise- Bibliothek verwenden, die einen Wrapper um die Anforderungsbibliothek implementiert und es Ihnen ermöglicht, mit Versprechen zu arbeiten.
▍ Stärken
- Eine API, die einfach zu bedienen ist.
▍ Schwächen
- Die Bibliothek verwendet keine Versprechen.
Holen Sie sich
Fetch ist im Gegensatz zu den anderen in dieser Überprüfung behandelten Tools keine Bibliothek. Dies ist eine Standard-Browser-API, eine Alternative zu
XMLHttpRequest
.
▍ Stärken
- Flexibilität und Benutzerfreundlichkeit.
- Die Verwendung von Versprechungen, die die "Hölle der Rückrufe" vermeiden.
- Unterstützung durch alle modernen Browser.
- Folgen Sie dem Request-Response-Ansatz.
- Einfache und schöne Syntax.
- Wird in React Native unterstützt.
▍ Schwächen
- Funktioniert nicht in einer Serverumgebung.
- Einige in HTTP-Bibliotheken verfügbare Funktionen wie das Abbrechen einer Anforderung werden nicht implementiert.
- Enthält keine integrierte Unterstützung für Standardparameter wie Anforderungsmodus, Header und Anmeldeinformationen.
Supertest
Die
Supertest- Bibliothek basiert auf der Superagent-Bibliothek. Es wurde entwickelt, um HTTP-Server zu testen, die auf der Basis von Node.js erstellt wurden. Mit Supertest erhalten Entwickler Zugriff auf ihre eigene API und die von der Superagent-Bibliothek bereitgestellte Low-Level-API.
▍ Stärken
- Es hat eine bequeme API.
- Vereinfacht den Aufbau von HTTP-Tests.
- Es kann in Verbindung mit Bibliotheken zum Testen von Projekten wie Chai.js und Mocha verwendet werden .
▍ Schwächen
- Funktioniert nicht in Browsern.
Zusammenfassung
In diesem Artikel haben wir einige beliebte Tools für die Arbeit mit HTTP untersucht, die für JS-Entwickler nützlich sind, die Anwendungen mithilfe von Browsertechnologien und Node.js-Plattformen erstellen. Bei der Auswahl einer Basis für das HTTP-Subsystem eines bestimmten Projekts wird empfohlen, zunächst mehrere geeignete Tools auszuprobieren und dann die endgültige Entscheidung zu treffen.
Liebe Leser! Welche HTTP-Bibliotheken verwenden Sie?