REST-API Schnittstelle
Eine REST API (Representational State Transfer Application Program Interface) ist ein Architekturstil, anhand dessen eine Software mit einer anderen Software über ein Netzwerk oder am selben Gerät kommunizieren kann. Der häufigste Einsatz von REST APIs ist im Aufbau eines Webservice wie unserer.
Diese werden auch als RESTful Webservices bezeichnet und nutzen HTTP-Methoden, um Daten zwischen dem Client-Gerät und einem Server abzufragen.
Mithilfe des HTTP-Protokolls ermöglichen REST APIs Software von einem Gerät mit Software eines anderen Geräts (oder desselben Geräts) zu kommunizieren, selbst wenn diesen unterschiedliche Betriebssysteme und Architekturen zugrunde liegen.
Der Client kann in einer Sprache Ressourcen abfragen, die der Server versteht. Der Server antwortet mit der Ressource in einer Sprache, die der Client verarbeiten kann, hier im Json Format.
Ich möchte es euch ein wenig vereinfachen:
Ihr habt eine eigene Webseite und möchtet gerne eure Touren dort anzeigen lassen. Dazu müsst ihr einfach eine Anfrage an unseren Server senden und erhaltet im Gegenzug eure Tourdaten zurück.
Da natürlich nicht jeder User alle Touren von allen Speditionen sehen soll, gibt es einen API-Key in euren Firmen-Einstellungen. Dieser wird zusammen mit der Anfrage gesendet, was sicherstellt, dass ihr nur eure Daten sehen könnt.
Ausser eine befreundete Spedition ist so Nett und verrät euch Ihren API-Key, dann seht ihr deren Touren ebenso. Das obliegt allerdings nicht unserer Verantwortung und falls das so ist, gehen wir davon aus, dass ihr euch einvernehmlich geeinigt habt.
Gut. Weiter...
Zum Abfragen der Daten kann man diverse Programmiersprachen verwenden, in unserem Beispiel bedienen wir uns der Programmiersprache PHP, da es als die sichereste Art gilt. Es sind ein paar Programmierkenntnisse von nöten, die man sich allerdings schnell aneignen kann. Zur Not einfach mal YouTube fragen, da gibt es auch den ein oder anderen Cleveren ;-)
Die "Ich habe keine Zeit"-Methode:
Wir gehen auf "
ReqBin":
Dort gibt man unter "Name" die URL ein, die man benötigt.
Wir Testen das der einfachheit halber mal mit den Pinnwand von TrucksLOG und geben dort ein "https://rest.truckslog.de/INFO/PINNWAND" (ohne Anführungszeichen)
Alles andere lassen wir einfach so und gehen auf den blauen Button auf der rechten Seite: "Send". Unten im "Body" seht ihr dann, was unser Server zurückgibt, also das was von unserem Server nur an euch zurückgesendet wurde, was in diesem Fall eine einfache Zahl ist.
Nun könnt ihr über dem "Send" Button auf "Generate" klicken, dort auf "PHP" und ReqBin generiert für euch den kompletten Code, der nötig ist um diese Abfrage auf eurer Hompage zu starten.
$url = "https://rest.truckslog.de/INFO/PINNWAND";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);
Wir kürzen das auf das nötigste und erhalten:
$curl = curl_init("https://rest.truckslog.de/INFO/PINNWAND");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$resp = curl_exec($curl);
curl_close($curl);
// Dies benötigen wir um aus den Json Daten ein Array zu generieren
$json_array = json_decode($resp, true);
// Danach zählen wir die Einträge
$anzahl = count($json_array);
//und durchlaufen alle Einträge:
for($i=0; $i < $anzahl; $i++) {
echo "Pinnwand-Titel: " . trim($json_array[$i]['titel']);
}
Damit erhaltet ihr folgende Ausgabe:
Pinnwand-Titel: ???? Willkommen bei der Cottbusverkehrlogistik GmbH! ????
Pinnwand-Titel: Du willst Spaß ? Dann komm zu uns !!!
Pinnwand-Titel: Wir suchen Verstärkung
Pinnwand-Titel: ???? WIR SUCHEN LKW-Fahrer für VTC_Deutschland! ????
Dieses könnt ihr nun zum Beispiel in eine Tabelle einfügen und weiter verarbeiten. Bei Fragen bitte unseren Discord-Server nutzen.