Benutzer:AxelCorti/Wikipedia API

aus Wikipedia, der freien Enzyklopädie
< Benutzer:AxelCorti
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 24. Mai 2021 um 20:11 Uhr durch imported>AxelCorti(3337731) (AZ: Die Seite wurde neu angelegt: = Einführung in die Verwendung des Wikipedia API = == Überblick == Das ''Application Programming I…).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Einführung in die Verwendung des Wikipedia API

Überblick

Das Application Programming Interface (API) für Wikipedia ist durch die technische Grundlage Vorlage:Https://www.mediawiki.org gegeben. Die ausführliche Vorlage:Https://www.mediawiki.org/wiki/Manual:Contents ist grundsätzlich auch für Wikipedia anwendbar. Allerdings entstehen durch die Besonderheiten der Installation auch einige Besonderheiten.

Die Funktionen des API werden mit HTTP-Nachrichten an einen der Wikipedia-Server (z.B. https://de.wikipedia.org/w/api.php) gesendet. Folgende Funktionsgruppen stehen zur Verfügung:

  • Überwachung einer Installation
  • Verwaltung der Benutzer
  • Abfragen von Daten und Metadaten zu Seiten
  • Änderungen von Seiten

Ergebnisse werden in verschiedenen Formaten geliefert, wobei json gut lesbar und verarbeitbar ist; auch xml steht (noch) zur Verfügung.

Das Formulieren von Anfragen

Die Anfragemethode GET

Die folgende Java-Methode skizziert, wie eine GET-Anfrage auszuführen ist. (Eine detaillierte Behandlung der Exceptions wäre zweckmäßig.)

static final String PATH = "https://de.wikipedia.org/w/api.php";
String get(String... params) throws Exception {
    String str = PATH + '?' + String.join( "&", params );
    URI uri = new URI( str );
    Builder builder = HttpRequest.newBuilder().uri( uri );
    HttpRequest request = builder.header( "User-Agent", "de:User:YourName testing" ).build();	
    HttpClient client = HttpClient.newHttpClient();
    HttpResponse<String> response = client.send( request, BodyHandlers.ofString() );
    return response.body();
}

Die Parameter wären als

action=query&format=xml&prop=pageprops%7Cinfo&inprop=url&titles=Adriano%20Franci#