Benutzer-Werkzeuge

Webseiten-Werkzeuge


api:documentation:http:apis:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


api:documentation:http:apis:start [2024/08/31 10:03] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== Sammlung freier Online-APIs ======
 +
 +===== Wetterdaten vom DWD (Deutscher Wetterdienst) =====
 +<WRAP center round info 60%>
 +Auf [[https://open-meteo.com/en/docs/dwd-api|open-meteo.com]] ist der Zugang zur DWD Icon API beschrieben. \\ 
 +Sehr empfehlenswert!
 +</WRAP>
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 400px; width: 100%;" data-java-online="{'withBottomPanel': false, 'id': 'dwd1'}">
 +<script type="text/plain" title="Http-Test.java">
 +HttpClient client = new HttpClient();
 +// Wetter in Manching
 +
 +HttpRequest request = new HttpRequest().uri("https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41&hourly=temperature_2m");
 +
 +HttpResponse response = client.send(request);
 +
 +JsonElement main = JsonParser.parse(response.body());
 +
 +JsonElement hourly = main.getAttributeValue("hourly");
 +
 +JsonElement time = hourly.getAttributeValue("time");
 +JsonElement temperature = hourly.getAttributeValue("temperature_2m");
 +
 +for (int i = 0; i < time.getArrayValues().length; i++) {
 +   print(time.getArrayValues()[i].getAsString() + ": ");
 +   println(temperature.getArrayValues()[i].getAsDouble() + "°C", Color.lightcoral);
 +}
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +===== Wetterdaten der Sense-Boxes =====
 +<WRAP center round info 60%>
 +Auf [[https://opensensemap.org/|OpenSenseMap.org]] finden Sie ein Verzeichnis mit mehr als 10000 Sense-Boxen weltweit, die periodisch Wetterdaten senden. Mit der [[https://docs.opensensemap.org/|Sensemap-API]] kann man frei auf deren Wetterdaten zugreifen. 
 +</WRAP>
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 400px; width: 100%;" data-java-online="{'withBottomPanel': false, 'id': 'apisOpenSenseMap'}">
 +<script type="text/plain" title="Http-Test.java">
 +HttpClient client = new HttpClient();
 +// Daten der Wetterstation in Hög: 5cc0a0618350e1001a6aa8ce
 +
 +HttpRequest request = new HttpRequest().uri("https://api.opensensemap.org/boxes/5cc0a0618350e1001a6aa8ce?format=json");
 +
 +HttpResponse response = client.send(request);
 +
 +JsonElement main = JsonParser.parse(response.body());
 +
 +println("Name: " + main.getAsString("name"));
 +JsonElement sensors = main.getAttributeValue("sensors");
 +
 +for (var sensor : sensors.getArrayValues()) {
 +   print(sensor.getAsString("title") + ": ", Color.lightblue);
 +   JsonElement measurement = sensor.getAttributeValue("lastMeasurement");
 +   print(measurement.getAsString("value"), Color.lightgray);
 +   print(sensor.getAsString("unit"), Color.lightgray);
 +   println();
 +}
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +===== Philips Hue-API =====
 +Auf [[https://developers.meethue.com/develop/get-started-2/|https://developers.meethue.com/develop/get-started-2/]] finden Sie die API zum Zugriff auf Philips Hue-Lampen.
 +===== Feiertage-API =====
 +Auf [[https://feiertage-api.de/|https://feiertage-api.de/]] finden Sie eine API mit Daten zu deutschen Feiertagen.
 +<HTML>
 +<div class="java-online" style="height: 300px; width: 100%;" data-java-online="{'withBottomPanel': false, 'id': 'apiFeiertage'}">
 +<script type="text/plain" title="Http-Test.java">
 +HttpClient client = new HttpClient();
 +// Daten zum 10. Spieltag in der 1. Bundesliga 2022
 +HttpRequest request = new HttpRequest().uri("https://feiertage-api.de/api/?jahr=2023");
 +
 +HttpResponse response = client.send(request);
 +// println(response.body());
 +
 +JsonElement main = JsonParser.parse(response.body());
 +String[] länder = main.getAttributeIdentifiers();
 +for (String land : länder) {
 +   println(land, Color.red);
 +   JsonElement landElement = main.getAttributeValue(land);
 +   String[] feiertage = landElement.getAttributeIdentifiers();
 +   for (String feiertag : feiertage) {
 +      JsonElement feiertagElement = landElement.getAttributeValue(feiertag);
 +      String datum = feiertagElement.getAsString("datum");
 +      print(feiertag + ": ", Color.lightblue);
 +      println(datum, Color.lightgrey);
 +   }
 +   println();
 +}
 +
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +===== Bund.dev =====
 +Auf [[https://bund.dev/|https://bund.dev/]] finden Sie mehr als 30 APIs mit Daten zu 
 +  * Bundestag
 +  * Jobsuche
 +  * Autobahnen
 +  * Umwetterwarnungen
 +  * usw.
 +<HTML>
 +<div class="java-online" style="height: 300px; width: 100%;" data-java-online="{'withBottomPanel': false, 'id': 'apiBund1'}">
 +<script type="text/plain" title="Http-Test.java">
 +HttpClient client = new HttpClient();
 +// Aktuelle Verkehrsmeldungen zur A9:
 +HttpRequest request = new HttpRequest().uri("https://verkehr.autobahn.de/o/autobahn/A9/services/warning");
 +
 +
 +HttpResponse response = client.send(request);
 +println(response.body());
 +
 +JsonElement main = JsonParser.parse(response.body());
 +
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +===== Liga-Daten (Sport) =====
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 100%;" data-java-online="{'withBottomPanel': false, 'id': 'apis1'}">
 +<script type="text/plain" title="Http-Test.java">
 +/**
 + * Liga-Daten zu verschiedenen Sportarten 
 + * Quelle : https://www.openligadb.de/
 + * Beschreibung der API hier: https://github.com/OpenLigaDB/OpenLigaDB-Samples
 + * Übersicht der gespeicherten Liga-Daten nach Sportarten: https://www.openligadb.de/Datenhaushalt/
 + */
 +
 +
 +HttpClient client = new HttpClient();
 +// Daten zum 10. Spieltag in der 1. Bundesliga 2022
 +HttpRequest request = new HttpRequest().uri("https://api.openligadb.de/getmatchdata/bl1/2022/10");
 +
 +HttpResponse response = client.send(request);
 +println(response.body());
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +
 +===== Kleine spielerische APIs =====
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 100%;" data-java-online="{'withBottomPanel': false, 'id': 'apis2'}">
 +<script type="text/plain" title="Http-Test.java">
 +/**
 + * Verzeichnis mehrerer kleiner, spielerischer APIs:
 + 
 + * https://apipheny.io/free-api/
 + */
 +
 +HttpClient client = new HttpClient();
 +HttpRequest request = new HttpRequest();
 +request.uri("https://catfact.ninja/fact");
 +
 +HttpResponse response = client.send(request);
 +println(response.body());
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +
 +===== API des statistischen Bundesamtes =====
 +Die API des statistischen Bundesamtes ist leider sehr langsam und die Zusammenstellung der Anfrageparameter sehr kryptisch. Die Daten aber wären sehr interessant. Daher hier ein Beispiel:
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 100%;" data-java-online="{'withBottomPanel': false, 'id': 'apis3'}">
 +<script type="text/plain" title="Http-Test.java">
 +/**
 + * API des Statistischen Bundesamtes (leider sehr umständlich und langsam)
 + 
 + * https://www-genesis.destatis.de/genesis/online
 + 
 + * https://www-genesis.destatis.de/genesis/misc/GENESIS-Webservices_Einfuehrung.pdf
 + 
 + * https://www-genesis.destatis.de/genesis/online?Menu=Webservice#abreadcrumb
 + 
 + */
 +
 +HttpClient client = new HttpClient();
 +HttpRequest request = new HttpRequest();
 +request.uri("https://www-genesis.destatis.de/genesisWS/rest/2020/find/find?username=GAST&password=GAST&term=Abfall&category=all&pagelength=16&language=de");
 +
 +HttpResponse response = client.send(request);
 +println(response.body());
 +
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +
 +===== API der NASDAQ =====
 +Beispielhaft für die umfangreichen, von der NASDAQ bereitgestellten Daten hier der deutsche Big Mac-Index:
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 100%;" data-java-online="{'withBottomPanel': false, 'id': 'apis4'}">
 +<script type="text/plain" title="Http-Test.java">
 +/**
 + * https://data.nasdaq.com/tools/api
 + * https://data.nasdaq.com/search?filters=%5B%22Free%22%5D
 + */
 +
 +HttpClient client = new HttpClient();
 +HttpRequest request = new HttpRequest();
 +request.uri("https://data.nasdaq.com/api/v3/datasets/ECONOMIST/BIGMAC_DEU.json");
 +
 +HttpResponse response = client.send(request);
 +println(response.body());
 +
 +</script>
 +
 +</div>
 +
 +</HTML>