Wie man sich das RESTliche Leben mit cURL erleichtert

Tool der Stunde


cURL ist ein vielseitiges Tool, das den Umgang (nicht nur) mit HTTP deutlich erleichtert. Neben der Automatisierung alltäglicher Aufgaben ist vor allem der Umgang mit RESTful-Anwendungen eines seiner herausragenden Merkmale.

Gerade in einer GUI-verwöhnten Welt ist es immer wieder ein großes Vergnügen, eine Shell in Anwesenheit Unwissender zu öffnen. Anerkennende Blicke sind einem sicher, wenn man mit grüner Schrift auf schwarzem Grund per cat die Einkaufsliste für morgen füllt. Man spürt förmlich die Erwartung des Zuschauers, dem Knacken einer 256-Bit-AES-Verschlüsselung in unter zehn Sekunden beizuwohnen.

Abseits der Mythen sind die Shell und ihre Tools eines der wichtigsten Werkzeuge erfahrener Entwickler. Gestrandet auf einem vom Kunden gestellten Rechner ohne grep, awk und sed kann man beobachten, wie sich nervöse Zuckungen über den geplagten Entwicklerkörper ausbreiten.

Abseits dieses klassischen Trios gibt es aber noch eine Vielzahl weiterer Tools, die oft unbeachtet ihr Dasein auf der Platte fristen. Wer sie kennt oder zumindest weiß, wo er nach ihnen suchen muss, kann sich den Alltag deutlich vereinfachen. Eines möchte ich in diesem Artikel vorstellen, hat es mir doch sowohl im täglichen Arbeiten als auch beim Spielen mit REST mein Leben deutlich erleichtert.

Enter cURL

Die Rede ist natürlich von „Client for URLs“ (kurz cURL). Das Tool und die zugehörige libcurl sind eine Art Schweizer Offiziersmesser der Application-Layer-Protokolle: HTTP, HTTPS, FTP, SFTP, TFTP, TELNET, LDAP, SMTP und noch einige mehr werden beinahe vollständig unterstützt. Sie alle werden über eine einheitliche Schnittstelle angesteuert. Dies erleichtert den Umgang mit ihnen und schafft viel Spielraum für einfache Automatisierungen. Bis heute habe ich hier keine Funktion vermisst, wobei ich zugeben muss, dass ich im Alltag beinahe ausschließlich HTTP/HTTPS, SMTP und SFTP/FTP verwende. Ein schnelles Beispiel, um das Eis zu brechen:

curl smtp://smtp.gmail.com --ssl -u user@gmail.com:passwort --mail-from '<user@gmail.com>' --mail-rcpt '<anderer_user@gmail.com>' -T hello.txt

Wer schon immer mal via Gmail eine Mail von der Kommandozeile aus versenden wollte, kann dies mit dem gerade gezeigten Code tun. Drei der Parameter sind für uns dabei besonders interessant, da sie auch für die anderen Protokollvarianten verwendet werden:

  • --ssl: SSL für die Übertragung verwenden

  • -u: Username-Passwort-Kombination für die Verbindung

  • -T: Name der Datei, die übertragen werden soll

cURL und F...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang