So führen Sie REST-API-Aufrufe mit cURL durch

Entdecken Sie, wie Sie cURL für REST-API-Anfragen wie GET, POST, PUT und DELETE verwenden und die Effizienz mit Web Unlocker-Proxys steigern können.
7 min lesen
How to Use cURL With REST API blog image

cURL(Client URL) ist seit Jahrzehnten der beliebteste HTTP-Client für die Befehlszeile. Er wird sowohl von Entwicklern als auch von Administratoren in allen Bereichen der Webentwicklung eingesetzt, z. B. zum Testen von APIs, Abrufen von Webseiten und sogar zur Dateiübertragung. BeimWeb-Scraping verwenden wir cURL in erster Linie zum Testen von HTTP-Anfragen.

REST (Representational State Transfer) ist ein Standard, der zur Erstellung einer API (Application Programming Interface) verwendet wird. Mit einer REST-API wird ein Server so konfiguriert, dass er vier grundlegende Anforderungstypen verarbeitet:GET,POST,PUTundDELETE. Jede dieser Methoden wird für die Interaktion mit einem Webserver verwendet. Wir werden im Laufe dieses Artikels näher darauf eingehen.

Erste Schritte

Installation

cURL ist heute auf den meisten gängigen Betriebssystemen vorinstalliert. Es ist seit vielen Jahren ein fester Bestandteil von Linux, aber auch macOS und Windows enthalten es mittlerweile standardmäßig. Sie können Ihre Installation von cURL mit dem folgenden Befehl überprüfen.

curl --version

Wenn cURL ordnungsgemäß installiert ist, sollten Sie eine ähnliche Antwort erhalten. Am wichtigsten ist, dass der Befehl --version eine Versionsnummer ausgibt. Im folgenden Beispiel lautet unsere Versionsnummer curl 7.81.0. Der Rest der Ausgabe ist release- und betriebssystemspezifisch.

curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.18
Release-Date: 2022-01-05
Protokolle: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp 
Funktionen: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-Proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd

Wenn Sie aus irgendeinem Grund cURL nicht installiert haben, finden Sie auf der Download-Seitehier eine für Ihr Betriebssystem geeignete Version.

<!–

  • So installieren Sie curl: Fassen Sie sich kurz und verlinken Sie auf betriebssystemspezifische Anweisungen.
    –>

Verwendung von cURL

Erstellen einer GET-Anfrage

Die häufigste HTTP-Anfrage ist die GET-Anfrage. Wir verwenden GET, um Informationen abzurufen. Wenn Sie eine Webseite aufrufen, führt Ihr Browser im Hintergrund eine GET-Anfrage durch. Mit cURL verwenden wir das GET-Flag, um eine solche Anfrage durchzuführen. Das folgende Beispiel sendet eine GET-Anfrage an https://jsonplaceholder.typicode.com/posts.

curl -X GET https://jsonplaceholder.typicode.com/posts

Wenn wir diese Anfrage ausführen, erhalten wir die Beiträge als Antwort zurück. Nachfolgend sehen Sie einen Ausschnitt aus der Antwort.

{
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipitnsuscipit recusandae consequuntur expedita et cumnreprehenderit molestiae ut ut quas totamnnostrum rerum est autem sunt rem eveniet architecto"
  },
  {
    „userId“: 1,
    „id“: 2,
    „title“: „qui est esse“,
    „body”: „est rerum tempore vitaensequi sint nihil reprehenderit dolor beatae ea dolores nequenfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendisnqui aperiam non debitis possimus qui neque nisi nulla”
  },
  {
    "userId": 1,
    "id": 3,
    "title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
    "body": "et iusto sed quo iurenvoluptatem occaecati omnis eligendi aut adnvoluptatem doloribus vel accusantium quis pariaturnmolestiae porro eius odio et labore et velit aut"
  },
  {
    "userId": 1,
    "id": 4,
    "title": "eum et est occaecati",
    „body”: „ullam et saepe reiciendis voluptatem adipiscinsit amet autem assumenda provident rerum culpanquis hic commodi nesciunt rem tenetur doloremque ipsam iurenquis sunt voluptatem rerum illo velit”
  },
  {
    "userId": 1,
    "id": 5,
    "title": "nesciunt quas odio",
    "body": "repudiandae veniam quaerat sunt sednalias aut fugiat sit autem sed estnvoluptatem omnis possimus esse voluptatibus quisnest aut tenetur dolor neque"
  },

<!–

  • Was ist eine GET-Anfrage?
    –>

Eine POST-Anfrage erstellen

Wir verwenden eine POST-Anfrage, wenn wir Informationen an einen Server senden möchten, um sie in einer Datenbank zu speichern. Die gängigsten Beispiele hierfür sind Beiträge in sozialen Medien. Das folgende Beispiel sendet eine POST-Anfrage, um mithilfe der API einen neuen Beitrag zu erstellen.

curl -X POST https://jsonplaceholder.typicode.com/posts 
     -H "Content-Type: application/json" 
     -d '{
           "title": "foo",
           "body": "bar",
           "userId": 1
         }'

Nach unserer Anfrage erhalten wir das eigentliche Beitragsobjekt als Antwort zurück.

{
  "title": "foo",
  "body": "bar",
  "userId": 1,
  "id": 101
}

Wenn Sie mehr über das Senden detaillierterPOST-Anfragen erfahren möchten, lesen Siediesen Leitfaden.

Eine PUT-Anfrage stellen

Wie Sie gerade gelernt haben, werden POST-Anfragen verwendet, um ein Objekt in einer Datenbank zu erstellen. Manchmal möchten wir ein Objekt bearbeiten, das bereits in einer Datenbank vorhanden ist. Um ein vorhandenes Objekt zu ändern, verwenden wir eine PUT-Anfrage. Das folgende Beispiel aktualisiert unseren vorherigen Beitragstext von „bar” zu „aktualisiertem bar”.

curl -X PUT https://jsonplaceholder.typicode.com/posts/1 
     -H "Content-Type: application/json" 
     -d '{
           "id": 1,
           "title": "foo",
           "body": "updated bar",
           "userId": 1
         }'

Wenn Sie dies ausführen, erhalten Sie die folgende Antwort. Wie Sie sehen können, wurde der Text unseres Beitrags aktualisiert.

{
  "id": 1,
  "title": "foo",
  "body": "updated bar",
  "userId": 1
}

Eine DELETE-Anfrage stellen

DELETE-Anfragen sollten zu diesem Zeitpunkt ziemlich selbsterklärend sein. Die DELETE-Anfrage wird verwendet, um ein vorhandenes Objekt anhand einer eindeutigen Kennung aus einer Datenbank zu entfernen. In diesem Fall lautet unsere Kennung (id) 1, also Beitrag Nummer eins. Der folgende Code entfernt den zuvor erstellten Beitrag.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/1

Wie Sie sehen können, ist unsere Antwort nur ein leeres JSON-Objekt. Der Beitrag wurde gelöscht.

{}

cURL mit Web Unlocker

Web Unlocker Product Page

Wenn Sie cURL mitWeb Unlocker verwenden, können Sie HTTP-Anfragen genauso wie mit cURL allein stellen. Web Unlocker bietet Ihnen jedoch die Leistungsfähigkeit eines Proxys.

Mit Web Unlocker erhalten Sie Geotargeting und CAPTCHA-Lösung von einigen der besten Proxys der Welt. Das Beste daran ist, dass diese Proxys für Sie verwaltet werden. Schließen Sie einfach den Proxy an und machen Sie wie gewohnt weiter.

Nachdem Sie Web Unlocker eingerichtet haben, speichern Sie unbedingt Ihren Benutzernamen, den Zonennamen und Ihr Passwort. Diese benötigen Sie zur Authentifizierung Ihrer Verbindung. Im folgenden Beispiel haben wir unsere Verbindung so eingerichtet, dass sie einen Proxy in den USA verwendet.

curl -i --proxy brd.superproxy.io:33335 --proxy-user brd-customer-<IHR_BENUTZERNAME>-zone-<IHR_ZONENNAME>-country-us:<IHR_PASSWORT> -k "https://geo.brdtest.com/mygeo.json"
  • -i: Teilt cURL mit, dass wir die Header in unserer Antwort enthalten haben möchten. Dies ist für Debugging-Zwecke nützlich.
  • --Proxy brd.superproxy.io:33335 --Proxy-User brd-customer-<IHR_BENUTZERNAME>-Zone-<IHR_ZONENNAME>-Country-us:<IHR_PASSWORT>
    • --proxy brd.superproxy.io:33335: Dies teilt cURL mit, dass wir einen Proxy unterbrd.superproxy.io:33335 verwenden möchten.
    • --proxy-user brd-customer-<IHR_BENUTZERNAME>-zone-<IHR_ZONENNAME>-country-us:<IHR_PASSWORT>: Dies ist unsere Authentifizierungszeichenfolge. Die Authentifizierungszeichenfolge ist wie folgt aufgebaut:<BENUTZERNAME>:<PASSWORT>. Bei Web Unlocker umfasst Ihr vollständiger Benutzername alle folgenden Elemente:brd-customer-<IHR_BENUTZERNAME>-zone-<IHR_ZONENNAME>-country-us.
  • kwird verwendet, um cURL mitzuteilen, dass wir die SSL-Zertifizierung umgehen möchten. Wenn Sie Web Unlocker langfristig nutzen möchten, können Sie unser SSL-Zertifikathier herunterladen und installieren. Dadurch kann Ihr Gerät die Verbindung selbst zertifizieren.

Unten sehen Sie ein Beispiel für eine Antwort. Wie Sie sehen können, wird unser Standort in New Jersey angezeigt.

{"country":"US","asn":{"asnum":20473,"org_name":"AS-VULTR"},"geo":{"city":"Piscataway","region":"NJ","region_name":"New Jersey","postal_code":"08854","latitude":40.5511,"longitude":-74.4606,"tz":"America/New_York","lum_city":"piscataway","lum_region":"nj"}}

Wenn Sie mehr über Web Unlocker erfahren möchten, schauen Sie sich unserenAPI Playground an. Dort können Sie experimentieren und mehr über die Erstellung von API-Anfragen mit vielen verschiedenen Sprachen und HTTP-Bibliotheken erfahren.Hier erfahren Sie mehr über die Verwendung von cURL mit Proxys.

Was können Sie mit cURL erreichen?

Sobald Sie sich mit cURL und HTTP gut auskennen, können Sie HTTP fast überall einsetzen. Für allgemeine API-Tests können Sie GUI-Tools wiePostmanundInsomniaverwenden.

Mit Python können SieRequestsverwenden oder sogarcURL innerhalb von Python nutzen. Mit JavaScript können SieNode-FetchoderAxiosverwenden, um Ihre HTTP-Anfragen zu automatisieren.

Wenn Sie bei Befehlszeilentools bleiben möchten, gibt es auch dafür eine Reihe von Möglichkeiten. Schauen Sie sich HTTPie und wget an. Beide Tools sind großartige Befehlszeilenprogramme und beherrschen HTTP sehr gut.

Fazit

Wenn es um HTTP-Clients geht, ist cURL seit Jahrzehnten der Standard für die Befehlszeile, und daran wird sich so schnell nichts ändern. Egal, ob Sie Entwickler oder Systemadministrator sind, Sie verfügen nun über die erforderlichen Kenntnisse für die grundlegende Verwendung von cURL und ein gutes Verständnis der Funktionsweise von HTTP. Mit cURL können Sie sogarDateien herunterladenundbenutzerdefinierte Headerfestlegen. Jetzt, da Sie wissen, wie Sie Web Unlocker damit verwenden können, können Sie HTTP unabhängig von Ihrer Arbeit wirklich effektiv nutzen. Wenn Sie ein angehender Entwickler sind, lernen Sie, wie Sie HTTP in der Sprache Ihrer Wahl verwenden können.