API:Tutorial
Diese Seite ist Teil der Dokumentation der MediaWiki action API. |
In diesem Tutorial lernst du die MediaWiki Action API kennen, wie du sie benutzt, das Anfragen-Format, eine einfache Abfrage und Beispiele von Projekten, welche die Action API verwenden.
Übersicht über die MediaWiki Action API
Die MediaWiki Action API ist ein REST-Webservice, der es Benutzern ermöglicht, bestimmte Wiki-Aktivitäten wie Seitenerstellung, Authentifizierung, Parsing, Suchen, etc. auszuführen. API:Hauptseite ist ein guter Ausgangspunkt, um die API zu verstehen.
Dein Programm sendet Abfragen an die API, um Zugriff auf Wiki-Funktionen zu erhalten. Zum Beispiel bei einem Wiki anmelden, eine Seite erstellen und bearbeiten, nach einem Titel suchen, nach Inhalt suchen oder Inhalt parsen. Die Action API ist für dritte Entwickler, Entwickler von Wikimedia-Erweiterungen und Administratoren von Wiki-Seiten verfügbar.
Auf der rechten Seitenleiste dieser Seite befinden sich viele Funktionen, die von der API unterstützt werden, nach Kategorien zusammengefasst. Bevor du Abfragen an einen Wiki-Server sendest, lese zunächst die Übersichtsseiten wie Datenformate, Fehler und Warnungen und die Action API FAQ.
Wie die MediaWiki Action API verwendet wird
Du kannst clientseitig über HTTP Daten vom Server anfordern und die Antwort in einem Standardformat erhalten (typischerweise JSON). Eine Abfrage besteht aus einem Endpunkt und einer Reihe von Parametern. Es können zwei Abfragetypen gestellt werden: GET und POST. Bei einer GET-Abfrage würde ein Parameter eine Abfrage-Zeichenkette in der URL enthalten. Für eine POST-Abfrage formatiere die Parameter im Format JSON.
Anfragen-Format
Alle Wikimedia-Wikis haben Endpunkte im Format http://example.org/w/api.php
. Nutze den entsprechenden Endpunkt, um auf der Hauptseite von MediaWiki oder der englischsprachigen Wikipedia zu agieren. Zum Beispiel findet sich die englischsprachige Wikipedia auf https://en.wikipedia.org/w/api.php
. Nutze den Test-Wiki-Endpunkt https://test.wikipedia.org/w/api.php
, um neue Konten oder das Bearbeiten von Seiten zu testen.
Füge den Parameter action
zur Abfrage-Zeichenkette in der URL hinzu. Er sagt der API, welche Aktion sie ausführen soll. Die bekannteste Aktion ist query
(die URL würde action=query
) enthalten, was es ermöglicht, Daten aus einem Wiki zu erhalten. Gib nach dem Parameter action
einen anderen Parameter an, um anzugeben, welchen der drei Abfragemodul-Typen nutzen möchtest:
prop
- Eigenschaften von Seiten erhaltenlist
- Liste von Seiten erhalten, die ein bestimmtes Kriterium erfüllenmeta
- Metainformationen über das Wiki und seine Benutzer erhalten
Schließe dann noch den Parameter format
ein, der der API sagt, in welchem Format die Ergebnisse erhalten werden sollen. Das empfohlene Format ist JSON. Die API hat in der Vergangenheit andere Ausgabeformate unterstützt, die jedoch nicht allgemein empfohlen werden.
Eine einfache Abfrage
Lass uns eine einfache Abfrage als Beispiel nehmen, um zu verstehen, wie eine typische GET-Abfrage und die Antwort im Kontext der Action API aussehen würden.
Lass uns nach einem Titel in einem Wiki suchen. Wir werden das auf API:Suche dokumentierte Modul search
nutzen.
GET-Anfrage
Um nach einem Seitentitel oder Inhalt, der mit Craig Noone
übereinstimmt, zu suchen, würde die URL für die HTTP-GET-Abfrage so aussehen:
Erklärung von jedem Teil der URL:
http://en.wikipedia.org/w/api.php
ist der Haupt-Endpunkt. In diesem Fall ist es die englischsprachige Wikipedia.action=query
steht für den Erhalt von Daten aus einem Wiki.list=search
steht dafür, eine Liste von Seiten, die ein Kriterium erfüllen, zu erhalten.srsearch=Craig%20Noone
gibt den Seitentitel oder Inhalt an, nach dem gesucht wird. Das%20
steht für ein Leerzeichen in einer URL.format=json
gibt JSON-Ausgabe vor, was das empfohlene Ausgabeformat ist.
Antwort
Die Antwort ist ein Dokument im Format JSON mit einer Liste von Seitentiteln, die mit Craig Noone übereinstimmen:
{
"batchcomplete": "",
"continue": {
"sroffset": 10,
"continue": "-||"
},
"query": {
"searchinfo": {
"totalhits": 210
},
"search": [
{
"ns": 0,
"title": "Craig Noone",
"pageid": 18846922,
"size": 22548,
"wordcount": 1771,
"snippet": "<span class=\"searchmatch\">Craig</span> Stephen <span class=\"searchmatch\">Noone</span> (born 17 November 1987) is an English professional footballer who plays as a winger for Bolton Wanderers. Born in Kirkby, he has also",
"timestamp": "2018-11-02T22:25:45Z"
},
{
"ns": 0,
"title": "Noone",
"pageid": 32906333,
"size": 553,
"wordcount": 64,
"snippet": "<span class=\"searchmatch\">Noone</span> is a surname that may refer to: <span class=\"searchmatch\">Craig</span> <span class=\"searchmatch\">Noone</span> (born 1987), English football midfielder Jimmie <span class=\"searchmatch\">Noone</span> (1895–1944), American jazz clarinetist Kathleen",
"timestamp": "2015-08-16T05:16:17Z"
}
...
]
}
}
Beispiele von Projekten, die die Action API nutzen
Einige Beispiele von Projekten in Wikimedia, die die Action API nutzen:
- Wikipedia iOS-App, die eine Funktion enthält, um nach Wiki-Seiten in deiner Nähe zu suchen.
- Bots, die auf einem Wiki laufen. Pywikibot ist ein Bot-Framework in Python, das mit der MediaWiki API interagiert und von vielen Bot-Entwicklern genutzt wird.
- API-Nutzung zur Visualisierung von Daten, die aus einem Wiki erhalten werden. Dazu gehört Neat Visualization, das Bearbeitungen auf Wikipedia in Echtzeit anzeigt.
Zusätzliche Anmerkungen
- Viele Seiten nutzen MediaWiki. Sie können alle unterschiedliche Versionen von MediaWiki und somit auch der API nutzen. Manche Modul-Parameter, die in einer Version unterstützt werden, können in anderen Versionen missbilligt oder entfernt worden sein. Darüber kannst du in der jeweiligen Modul-Dokumentation über das API-Hilfe-Modul mehr erfahren.
- Wenn du viele API-Abfragen stellen möchtest und vielleicht sehr aufwendige und aktive Bots betreibst, sprich mit den Wiki-Admins, damit sie dich nicht sperren. Siehe die Liste von Administratoren von Wikimedia-Projekten. Lese mehr zu diesem Thema auf API:Etikette .
- Alle Aktionen, die Daten verändern, wie Logbücher, Bearbeitungen oder Verschiebungen einer Seite, sowie das Beobachten oder Kontrollieren von Änderungen erfordern Tokens. Du musst Tokens über API:Tokens erhalten, ehe du fortfahren kannst.
Ressourcen
- Nutze Special:APISandbox, um die Action API auszuprobieren. Du kannst mit unterstützten Aktionen spielen, einen Wert für Parameter angeben und Abfragen an die API senden, um das Ergebnis auf der gleichen Seite zu sehen.
- Wikimedia-Dumps, mit denen du lokal arbeiten kannst.
- Lese dir Anleitungen durch: An Introduction to API's und What is REST — A Simple Explanation for Beginners.
- MediaWiki-API-Hilfe bietet eine automatisch generierte Dokumentation aller unterstützten Module.
- API:Hauptseite bietet einen Überblick der Action API.
- Introduction to the MediaWiki API von User:Roan Kattouw (WMF) auf dem San Francisco Hackathon 2012. Diese Anleitung wird durch ein Video begleitet.
- GitHub: MediaWiki-API-Demos