API:REST API

From mediawiki.org
This page is a translated version of the page API:REST API and the translation is 99% complete.

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"

Versuche es

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.

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. Zur Dokumentation von REST-API-Endpunkten von Erweiterungen, siehe die Dokumentation der Erweiterungen. Die Erweiterungs-Oberfläche der REST API ist in MediaWiki 1.34 über Handbuch:$wgEnableRestAPI und in MediaWiki 1.35 und später standardmäßig verfügbar.

API-Vergleich

Diese Tabelle: siehe · Diskussion · bearbeiten
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