vorige Präsentation: Datei Upload - Frontend | zurück zum Buch-Kapitel [esc] | Nächste Präsentation Errors + Debugging
API steht für Application Programming Interface. Eine API im Web ist ein Programm auf einem anderen Webserver, das wir aufrufen können, und da Daten liefert.
drei Beispiele:
q
Mit jeder Programmiersprache kann man APIs abfragen.
Egal ob PHP, C#, JavaScript, Ruby, Python, …. jede Programmiersprache kann HTTP-Requests schicken und HTTP-Responses verabeiten.
Mit jeder Programmiersprache kann man selbst eine API programmieren.
Egal ob PHP, C#, JavaScript, Ruby, Python, …. für jede dieser Programmiersprache gibt es Libraries die es einfach machen HTTP-Anfrage zu beantworten.
Einige APIs sind völlig frei zugänglich. Aber für viele braucht man erst einen API-Key, bevor man eine Antwort von der API erhält.
Das dient dazu eine Überlastung zu vermeiden. Oft sind die ersten paar Zugriffe gratis, für höhere Zugriffszahlen muss man bezahlen.
Ein API Key ist genau so wichtig und geheim wie ein Passwort und soll also auch nicht im git repository gespeichert werden.
Um die API von http://openweathermap.org/ zu benutzen ist eine Anmeldung und ein API key notwendig. Die Preise für die API sind nach Anzahl der Zugriffen gestaffelt, im April 2023 waren die Preise:
Beim Zugriff auf die API muss jeweils der API-Key als parameter mit gesendet werden:
... require "config.php"; $lat = 47.723; // Breitengrad $lon = 13.086; // Längengrad $url ="https://api.openweathermap.org/data/2.5/weather?lon=$lon&lat=$lat&units=metric&apikey=$api_key"; $json_string = file_get_contents( $url );
Mit dem Befehl file_get_contents
wird ein HTTP GET Request gesendet.
Die Antwort erhalten wir als String als Rückgabewert.
Die Daten werden je nach API in verschiedenen Formaten geliefert. Besonders beliebt sind XML und JSON.
Im Fall der openweatherapi ist es JSON. Im Browser Firefox wird es so dargestellt:
Mit json_decode
kann man den String in eine PHP Datenstruktur
umwandeln: in verschachtelte (assoziative) Arrays
$json_string = file_get_contents( $url ); $data = json_decode($json_string, true); echo $data['main']['temp'];
vorige Präsentation: Datei Upload - Frontend | zurück zum Buch-Kapitel [esc] | Nächste Präsentation Errors + Debugging
/
#