API:REST API
This page is part of the MediaWiki REST API documentation. |
Die MediaWiki REST API lässt dich mit MediaWiki interagieren, indem HTTP-Abfragen an rest.php
-URLs gesendet werden.
Du kannst die API nutzen, um Apps und Skripte zu erstellen, die nach Wiki-Seiten suchen und diese anzeigen, Mediendateien erhalten und die Versionsgeschichte untersuchen.
Schnellstart
# Durchsuche die englischsprachige Wikipedia nach einem Artikel über Earth $ curl "https://en.wikipedia.org/w/rest.php/v1/search/page?q=earth&limit=1"
Datenformat
REST-API-Endpunkte geben Daten in den Formaten JSON oder HTML aus. Siehe die API-Referenz für den Inhaltstyp, der von jedem Endpunkt unterstützt wird.
Methoden
Die API unterstützt Standard-HTTP-Anfragemethoden.
GET | Ressource abrufen |
---|---|
HEAD | Gibt HTTP-Header für eine GET-Abfrage ohne Antwortdaten aus |
POST | Ressource erstellen |
PUT | Ressource aktualisieren oder erstellen |
URL-Struktur
API-Endpunkte teilen sich eine konsistente URL-Struktur, die die Basis-URL des Wikis, den Skript-Pfad des Wikis und die API-Version enthält.
# URL-Struktur
[Projekt-URL]/[Skript-Pfad]/rest.php/v[Versionsnummer]/
# Beispiel-URL: Erhalte die Versionsgeschichte der Hauptseite der englischsprachigen Wikipedia
https://en.wikipedia.org/w/rest.php/v1/page/Main_Page/history
Versionierung
Die MediaWiki REST API wurde entwickelt, um langfristig stabil für Entwickler zu sein und nutzt daher eine globale Versionsnummer im API-Pfad zur Versionierung (zum Beispiel: /v1/
).
Da die Prinzipien der semantischen Versionierung befolgt werden, ist die Version inkrementiert, wenn ein Endpunkt so geändert wird, dass er nicht abwärtskompatibel ist, beispielsweise bei Entfernung einer Antworteigenschaft oder Hinzufügung von Pflichtparametern.
In einer Hauptversion kann die API so geändert werden, dass sie abwärtskompatibel ist, beispielsweise bei Hinzufügung einer Antworteigenschaft oder eines optionalen Abfrageparameters.
/v1/ (letzte)
|
Verfügbar in MediaWiki 1.35 |
---|
Berechtigungen und Autorisierung
Die REST API wurde so entwickelt, dass sie zusammen mit der Erweiterung OAuth zur Benutzer-Authentifizierung und -Autorisierung genutzt werden kann. Unabhängig von der Authentifizierungsmethode reagiert die API auf die Anmeldung eines Benutzers und gibt für die Berechtigungen des Benutzers angemessene Inhalte aus.
Über die REST API auf Wikimedia-Projekte zugreifen
Du kannst die REST API nutzen, um auf Wikipedia, Wiktionary und andere Wikimedia-Projekte in unterschiedlichen Sprachen zuzugreifen. Für eine vollständige Liste der Wikimedia-Projekt-URLs siehe die Liste der Wikis.
Abfragelimit
Es gibt kein festes Limit für Abfragen an die API, dein Client kann jedoch gesperrt werden, wenn du die Stabilität einer Seite gefährdest. Um mit einer sicheren Abfragerate zu beginnen, warte bis eine Abfrage beendet ist, ehe du eine weitere Abfrage sendest.
Client-Identifikation
Wikimedia-Seiten verlangen für alle API-Abfragen einen HTTP-User-Agent-Header. Dies hilft dabei, deine App zu identifizieren und stellt sicher, dass System-Administratoren dich kontaktieren können, falls ein Problem auftritt. IP-Adressen von Clients, die Abfragen ohne User-Agent-Header stellen, können ohne Vorwarnung gesperrt werden
Der User-Agent-Header kann eine Benutzerseite im lokalen Wiki, eine Benutzerseite in einem verwandten Wiki durch Nutzung der Interwiki-Verlinkungs-Syntax, eine URL für eine relevante externe Webseite oder eine Email-Adresse enthalten.
# Bevorzugtes Format für User-Agent-Header
<Client-Name>/<Version> (<Kontaktinformation>) <Name der Bibliothek / des Frameworks>/<Version>
Abhängig von deinem Browser kannst du möglicherweise nicht den User-Agent-Header beeinflussen, wenn du die API über ein browserbasiertes JavaScript ansteuerst.
Nutze den Api-User-Agent
-Header, um dies zu umgehen.
Siehe die User-Agent-Richtlinie im Meta-Wiki für weitere Informationen.
Authentifizierung
Um deine App zu autorisieren, im Namen eines Benutzer zu handeln, folge der OAuth-Entwickler-Richtlinie, um deine App zu registrieren und Abfragen über OAuth-Tokens zu stellen.
Lizenzierung und Warenzeichen
Wikimedia-Inhalte sind frei und können im Rahmen der Bedingungen der jeweiligen Lizenz weiterverwendet werden. Lizenzen können sich je nach Projekt unterscheiden, weshalb du dich im jeweiligen Projekt über Lizenzen und die Wiederverwendung von Inhalten informieren solltest. Beispielsweise kann Text aus der englischsprachigen Wikipedia unter den Bedingungen der Creative-Commons-Attribution-Share-Alike-Lizenz genutzt werden, während Mediendateien auf Wikimedia Commons individuell lizenziert sind und sich die Lizenz auf der Informationsseite der Datei befindet. Für weitere Informationen über die Lizenzierung und die Nutzung von Warenzeichen, siehe die Richtlinien für App-Entwickler im Meta-Wiki.
Einschränkungen in Wikidata
Während die REST API in Wikimedia-Projekten verfügbar ist, wird sie von Wikidata nicht vollständig unterstützt. Zum Zeitpunkt, an dem dieser Text verfasst wurde, gaben einige der Endpunkte unerwartete Fehler aus. Instead, use the Wikidata REST API.
Endpunkte von Erweiterungen
MediaWiki-Erweiterungen können mithilfe der REST API erweiterungsspezifische API-Endpunkte erstellen. Siehe die Dokumentation zur Erweiterungs-Oberfläche der REST API, um einzusteigen. Die Erweiterungs-Oberfläche der REST API ist in $1 über $2 und in MediaWiki 1.35 und später standardmäßig verfügbar. In MediaWiki 1.34 , you can enable the REST API extension interface using $wgEnableRestAPI (entfernt in 1.36).
API-Vergleich
API | Erreichbarkeit | URL base | Beispiel |
---|---|---|---|
MediaWiki Action API | Enthalten mit MediaWiki
Aktiviert auf Wikimedia-Projekte |
/api.php | https://de.wikipedia.org/w/api.php?action=query&prop=info&titles=Erde |
MediaWiki REST API | Enthalten mit MediaWiki 1.35
Aktiviert auf Wikimedia-Projekte |
/rest.php | https://de.wikipedia.org/w/rest.php/v1/page/Erde |
Wikimedia REST API | Nicht enthalten mit MediaWiki
Nur für Wikimedia-Projekte verfügbar |
/api/rest | https://de.wikipedia.org/api/rest_v1/page/title/Erde |
For commercial-scale APIs for Wikimedia projects, see Wikimedia Enterprise |
Über diese Dokumentation
Diese Dokumentation wurde basierend auf dem Quellcode des MediaWiki-Kerns manuell geschrieben. Korrekturen und Ergänzungen sind willkommen! Um eine Anleitung oder App, die die MediaWiki REST API nutzt, zu teilen, füge einen Link zur REST-API-Vorlage hinzu.
Siehe auch
- REST API on Wikipedia
- Seite der REST-API-Initiative
- Handbuch:$wgRestPath
- Gewartet von MediaWiki Interfaces Team.
- Echtzeit-Chat (IRC): #mediawiki-core connect
- Problem-Tracker: Phabricator MediaWiki-Action-API (Problem melden)