cURL zu Code: API-Anfragen zwischen Sprachen sofort konvertieren
cURL-Flag-Syntax verstehen, häufige REST-API-Muster und cURL-Befehle präzise in JavaScript fetch, Python requests und Node.js axios übersetzen – einschließlich des Browser-DevTools-Workflows "Als cURL kopieren".
Jede API hat Dokumentation. Fast ausnahmslos enthält diese Dokumentation Code-Beispiele in cURL – dem Befehlszeilen-HTTP-Client, der auf jedem Unix-ähnlichen System mitgeliefert wird und seit Jahrzehnten die Lingua Franca der API-Dokumentation ist. Das Problem ist, dass man keine Shell-Skripte schreibt. Man schreibt JavaScript, Python, Go oder Ruby und muss diesen cURL-Befehl in funktionierenden Code übersetzen, bevor man ihn verwenden kann.
Diese Übersetzung ist mühsam und fehleranfällig. Header, Authentifizierungsschemata, Request-Bodies und URL-Kodierung müssen alle auf die richtigen Methodenaufrufe in der richtigen Sprache abgebildet werden. Der BrowseryTools cURL-Konverter macht das automatisch – einen cURL-Befehl einfügen und äquivalenten Code in JavaScript fetch, Python requests, Node.js axios und mehr erhalten. Kostenlos, keine Anmeldung, alles bleibt im Browser.
Was ist cURL?
cURL (Client URL) ist ein Befehlszeilen-Tool für die Datenübertragung über URLs. Es unterstützt HTTP, HTTPS, FTP, WebSockets und Dutzende anderer Protokolle. Für Entwickler wird es am häufigsten verwendet, um HTTP-Anfragen vom Terminal aus zu stellen – einen API-Endpunkt zu testen, eine Datei herunterzuladen oder Authentifizierung zu debuggen.
cURL ist standardmäßig auf macOS und den meisten Linux-Distributionen installiert. Unter Windows ist es seit Windows 10 im Betriebssystem enthalten. Diese Allgegenwart ist genau der Grund, warum API-Dokumentationsteams standardmäßig cURL für Beispiele verwenden – sie können sicher sein, dass jeder Entwickler, der die Dokumentation liest, das Beispiel sofort ausführen kann, ohne etwas zu installieren.
Anatomie eines cURL-Befehls
Ein cURL-Befehl besteht aus einer Basis-URL und einer Reihe von Flags. Hier ist ein vollständiges Beispiel, das die wichtigsten Flags abdeckt:
curl -X POST https://api.example.com/v1/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
-d '{"name": "Alice", "email": "alice@example.com"}'Aufschlüsselung jedes Flags:
-X POST– setzt die HTTP-Methode. Gültige Werte sind GET, POST, PUT, PATCH, DELETE usw. Wenn weggelassen und-dvorhanden ist, setzt cURL standardmäßig POST.-H "Header: Wert"– fügt einen Request-Header hinzu. Kann für mehrere Header mehrfach wiederholt werden.-d '...'– der Request-Body. Für JSON mit-H "Content-Type: application/json"kombinieren. cURL URL-kodiert den Body standardmäßig, außer man verwendet--data-raw.--data-raw '...'– sendet den Body genau wie angegeben, ohne URL-Kodierung. Erforderlich, wenn der Body Zeichen wie@enthält, die-dbesonders interpretieren würde.-u benutzername:passwort– Abkürzung für Basic Authentication. cURL kodiert es als Base64-Authorization-Header.-s– Stiller Modus; unterdrückt die Fortschrittsanzeige. Fast immer in Skripten verwendet.-v– Ausführlicher Modus; druckt Request- und Response-Header. Unschätzbar für das Debuggen von Authentifizierungsfehlern.-o dateiname– Ausgabe in eine Datei schreiben statt auf stdout.
Häufige cURL-Muster für REST-APIs
GET-Anfrage mit Query-Parametern
curl "https://api.example.com/users?page=2&limit=20" \ -H "Authorization: Bearer TOKEN"
Query-Parameter kommen direkt in die URL. Die gesamte URL in Anführungszeichen setzen, damit die Shell das & nicht als Hintergrundprozess-Operator interpretiert.
POST mit JSON-Body
curl -X POST https://api.example.com/orders \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key" \
--data-raw '{"product_id": 42, "quantity": 3}'Datei-Upload (multipart/form-data)
curl -X POST https://api.example.com/upload \ -H "Authorization: Bearer TOKEN" \ -F "file=@/path/to/document.pdf" \ -F "description=Q4 Report"
Das -F-Flag sendet multipart/form-data. Das @-Präfix bedeutet „aus Datei lesen". Das ist das Format für Bild-Uploads, Dokumentverarbeitungs-APIs und alle Endpunkte, die binäre Daten akzeptieren.
cURL zu JavaScript fetch konvertieren
// Original cURL:
// curl -X POST https://api.example.com/v1/users \
// -H "Content-Type: application/json" \
// -H "Authorization: Bearer TOKEN" \
// -d '{"name": "Alice", "email": "alice@example.com"}'
const response = await fetch("https://api.example.com/v1/users", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer TOKEN",
},
body: JSON.stringify({
name: "Alice",
email: "alice@example.com",
}),
});
const data = await response.json();cURL zu Python requests konvertieren
import requests
response = requests.post(
"https://api.example.com/v1/users",
headers={
"Authorization": "Bearer TOKEN",
},
json={
"name": "Alice",
"email": "alice@example.com",
},
)
data = response.json()Der Parameter json= der requests-Bibliothek übernimmt sowohl die Serialisierung als auch das automatische Setzen des Headers Content-Type: application/json – kein manuelles Setzen erforderlich.
cURL zu Node.js mit axios konvertieren
const axios = require("axios");
const response = await axios.post(
"https://api.example.com/v1/users",
{
name: "Alice",
email: "alice@example.com",
},
{
headers: {
Authorization: "Bearer TOKEN",
},
}
);
const data = response.data;Wie „Als cURL kopieren" in den Browser-DevTools funktioniert
Eine der nützlichsten Funktionen in den Browser-DevTools ist „Als cURL kopieren". In Chrome, Firefox oder Safari: DevTools öffnen, zum Netzwerk-Tab wechseln, eine Anfrage stellen (einloggen, auf eine Schaltfläche klicken, eine Seite laden), die Anfrage in der Netzwerkliste rechtsklicken und „Als cURL kopieren" auswählen.
Der Browser generiert einen vollständigen cURL-Befehl, der jeden Header enthält, den der Browser gesendet hat – einschließlich Cookies, Session-Tokens, CSRF-Tokens und anderen Authentifizierungsdaten. Das bedeutet, man kann genau die Anfrage, die der Browser gestellt hat, einschließlich ihres gesamten Authentifizierungskontexts, vom Terminal oder aus Code wiederholen.
Das ist unschätzbar für Debugging: Wenn die Browser-Anfrage funktioniert, aber die Code-Anfrage scheitert, beide in ein Diff einfügen und den Header- oder Body-Unterschied finden. Man kann das kopierte cURL auch direkt in den BrowseryTools cURL-Konverter einfügen, um äquivalenten Code in der bevorzugten Sprache zu erhalten – der Konverter übernimmt automatisch das gesamte Escaping, Quoting und die Flag-Übersetzung.
Zusammenfassung
cURL ist die universelle Sprache von HTTP. API-Dokumentationen verwenden es, weil jeder es ausführen kann. DevTools kopiert es, weil es jedes Detail einer Anfrage erfasst. cURL fließend lesen zu können – und es präzise in die jeweilige Arbeitssprache übersetzen zu können – ist eine praktische Fähigkeit, die sich jedes Mal auszahlt, wenn man eine neue API integriert. Die mühsame manuelle Übersetzung überspringen und den BrowseryTools cURL-Konverter verwenden, um in Sekunden sauberen, ausführbaren Code zu erhalten.
Try the Tools — 100% Free, No Sign-Up
Everything runs in your browser. No uploads. No accounts. No ads.
Explore All Tools →