HTTP-Client für JavaScript (Node.js): Top-Bibliotheken für die Arbeit mit APIs

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

HTTP-Client für JavaScript (Node.js): Top-Bibliotheken für die Netzwerkarbeit



Moderne Entwicklung mit Node.js kommt selten ohne Interaktion mit externen Diensten aus. Ob REST API, GraphQL-Endpunkte oder Daten-Streaming – Sie benötigen einen zuverlässigen HTTP-Client. In diesem Artikel analysieren wir die besten Bibliotheken für die Ausführung von HTTP-Anfragen in der Node.js-Umgebung, ihre Besonderheiten und Anwendungsbeispiele.



1. Axios – die universelle Wahl

Axios ist der beliebteste HTTP-Client für Node.js und Browser. Er basiert auf Promises, unterstützt Interceptors, automatische JSON-Transformation und das Abbrechen von Anfragen.



Installation

npm install axios


Beispiel einer GET-Anfrage

const axios = require('axios');

async function getUsers() { try { const response = await axios.get('https://jsonplaceholder.typicode.com/users'); console.log(response.data); } catch (error) { console.error('Fehler:', error.message); }}

getUsers();


Besonderheiten:

  • Unterstützung von CancelToken zum Abbrechen von Anfragen
  • Automatische Behandlung von HTTP-Fehlern (Status 4xx und 5xx)
  • Funktioniert sowohl auf dem Server als auch im Browser
  • Unterstützung des Upload-/Download-Fortschritts


2. Got – Leistung und Flexibilität

Got ist eine leichte und schnelle Bibliothek, die speziell für Node.js entwickelt wurde. Sie bietet eine umfangreiche API und hervorragende Leistung durch die direkte Nutzung der http- und https-Module.



Installation

npm install got


Beispiel einer POST-Anfrage

const got = require('got');

async function createPost() { try { const response = await got.post('https://jsonplaceholder.typicode.com/posts', { json: { title: 'Neuer Beitrag', body: 'Inhalt des Beitrags', userId: 1 }, responseType: 'json' }); console.log(response.body); } catch (error) { console.error('Fehler:', error.message); }}

createPost();


Besonderheiten:

  • Unterstützung von Streams und Paginierung
  • Integrierte Unterstützung für Wiederholungsversuche (Retry)
  • Arbeit mit Cookies und Caching
  • Unterstützung von HTTP/2 (über http2-wrapper)


3. Node.js Fetch API – nativer Standard

Seit Node.js 18 ist die Fetch API ein integriertes Modul (global verfügbar). Es handelt sich um eine Implementierung derselben API wie in Browsern, was universellen Code vereinfacht.



Anwendungsbeispiel

async function fetchData() {  try {    const response = await fetch('https://jsonplaceholder.typicode.com/posts/1');    if (!response.ok) throw new Error('HTTP-Fehler: ' + response.status);    const data = await response.json();    console.log(data);  } catch (error) {    console.error('Fehler:', error.message);  }}

fetchData();


Besonderheiten:

  • Keine Installation erforderlich – in Node.js 18+ integriert
  • Standard-API, bekannt für Frontend-Entwickler
  • Unterstützung von AbortController zum Abbrechen von Anfragen
  • Eingeschränkte Möglichkeiten im Vergleich zu Axios/Got (z. B. keine Interceptors)


4. undici – Hochleistungs-HTTP/1.1-Client

undici ist ein schneller, moderner HTTP-Client, der die Grundlage des integrierten Fetch in Node.js bildet. Er ist für maximalen Durchsatz optimiert.



Installation

npm install undici


Beispiel einer Anfrage

const { request } = require('undici');

async function fetchWithUndici() { try { const { statusCode, body } = await request('https://jsonplaceholder.typicode.com/users'); const data = await body.json(); console.log('Status:', statusCode); console.log('D

Empfehlungen