Wikipedia:Datenbankabfragen/Query API
aus Wikipedia, der freien Enzyklopädie
Die Query API ist eine Programmierschnittstelle für einfache Datenbankanfragen auf Mediawiki-Servern. Mit einem Aufruf der URL der query.php
können sowohl Einzelinformationen abgefragt als auch komplexere Ausgaben über den Server oder einzelne Seiten erzeugt werden. Die Ergebnisse werden wahlweise in maschinenlesbaren Formaten (xml, json, php, wddx) oder benutzerlesbar formatiert ausgegeben. Voreingestellt ist das XML-Format.
Inhaltsverzeichnis |
[Bearbeiten] Verwendung
http://de.wikipedia.org/w/query.php ? format=... & what=...|...|... & titles=...|...|... & ...
Parameter | Bedeutung |
---|---|
format | Ausgabeformat, siehe Abschnitt Format |
what | Gesuchte Information(en). Siehe den Abschnitt über die unterstützten Eigenschaften. Es können mehrere Eigenschaften getrennt durch das Pipe-Symbol '|' gleichzeitig angegeben werden. |
titles | Liste von Titeln, durch das Pipe-Symbol '|' getrennt. |
pageids | Liste von Seiten-IDs, durch das Pipe-Symbol '|' getrennt. |
revids | Liste von Versionen-IDs, durch das Pipe-Symbol '|' getrennt. Siehe Abschnitt 'revisions'. |
noprofile | wenn gesetzt, wird die Ausgabe der Dauer der SQL-Abfrage unterdrückt. |
proxysite | Projektfremde Seiten (wikipedia/wikinews/wikiquote/...) |
proxylang | Andere Sprachen (en/ru/he/commons/...) |
Hinweis: Die proxy-Parameter sind ein Workaround für Browser-basierte Scripte. Sie sollten möglichst vermieden werden. Der Zugriff erfolgt dann anonym (ohne Anmeldeinformation) und funktioniert nur für Projekte, die sich auf dem selben Cluster befinden.
[Bearbeiten] Beispiele
query.php?what=links|templates&titles=Hauptseite
: liefert eine Liste aller Links und Vorlagen, die auf der Hauptseite verwendet werden.query.php?what=revisions&titles=Hauptseite&rvlimit=100&rvstart=20060401000000&rvcomments
: liefert eine Liste der 100 letzten Edits der Hauptseite mit den jeweiligen Kommentarinformation (Zeitstempel, Autor, Zusammenfassung), aber erst ab dem 1. April 2006.query.php?what=revisions&revids=1&rvcomments
: liefert den Edit #1 mit einigen Eigenschaften.
[Bearbeiten] Unterstützte Eigenschaften
[Bearbeiten] Hinweise
- Einige mit *langsam* markierte Beispiele führen zu sehr umfangreichen Datenbankabfragen. Sie sollten nur mit Bedacht ausgeführt werden.
- Einige Eigenschaften können dem <query>-Element Status-Informationen hinzufügen. Beispielsweise setzt
query.php?what=allpages&aplimit=3
ein Element <query>/<allpages next='B'> zum nächsten verfügbaren Wert. Um an dieser Stelle fortzusetzen, setze '__from' auf diesen Wert, z. B.query.php?what=allpages&aplimit=3&apfrom=B
Zusätzlich enthält das <query>-Element die Laufzeit (in ms) für die Datenbank und die Gesamtrechenzeit, um Optimierungen zu ermöglichen.
[Bearbeiten] Eigenschaften für den ganzen Server
- info: Allgemeine Serverinformationen
- Beispiel:
query.php?what=info
- Beispiel:
- namespaces: Liste der Namensräume
- Beispiel:
query.php?what=namespaces
- Beispiel:
- userinfo: Information über den aktuellen Benutzer. Dies beinhaltet immer den Namen und ggf. das 'anonymous' oder 'bot'-Flag.
- Weitere Flag-Parameter:
- uiisblocked - wenn gesetzt und der aktuelle Benutzer oder IP ist gesperrt, wird ein 'blocked' Flag ausgegeben.
- uihasmsg - wenn gesetzt und der aktuelle Benutzer oder IP hat ungelesene Nachrichten, wird das 'messages' flag ausgegeben.
- uiextended - wenn gesetzt, werden zusätzliche Informationen wie Rechte und Gruppenzugehörigkeit ausgegeben.
- uioptions - Liste von Benutzereinstellungen getrennt durch '|'. Komplette Liste wie in
User.php
defniert.
- Beispiele:
query.php?what=userinfo&uiisblocked&uihasmsg&uiextended
query.php?what=userinfo&uioptions=timecorrection|skin
– zeigt die gewählte Zeitzone und den Skin
- Weitere Flag-Parameter:
- recentchanges: liefert eine Liste der letzten Änderungen
- Weitere Parameter:
- rcfrom - Zeitstempel des ältesten Eintrages. Die Reihenfolge wird umgekehrt.
- rclimit - Anzahl der max. gewünschten Einträge. Die Zahl kann auch kleiner werden, wenn Artikel mehrfach editiert wurden.
- rchide - Auszublendende Edits 'minor' (K), 'bots' (B), 'anons' (IPs), 'liu' (eingelogte Benutzer). Anons und liu dürfen nicht gleichzeitig ausgeblendet werden.
- Beispiel:
query.php?what=recentchanges&rchide=liu|bots
- Weitere Parameter:
- allpages - liefert einen Index aller verfügbaren Seiten (wie Spezial:Allpages)
- Weitere Parameter:
- aplimit - Gesamtzahl der zurückzugebenden Seiten.
- apfrom - Seitentitel vom Beginn der Indexierung.
- apnamespace - Namensraum. Voreinstellung ist 0 für den Artikelraum.
- apfilterredir - Filterkriterien: 'all' (Voreinstellung), 'redirects' oder 'nonredirects'
- Beispiele:
query.php?what=allpages&aplimit=50
(erste 50 Seiten)query.php?what=allpages&aplimit=20&apnamespace=10&apfrom=C&apfilterredir=nonredirects
(20 Vorlagen ab 'C', die keine Redirects sind)
- Weitere Parameter:
- nolanglinks - liefert einen Index aller Seiten ohne Interlanguage-Links (Redirects werden automatisch gefiltert).
- Weitere Parameter:
- nllimit - Gesamtzahl der zurückzugebenden Seiten.
- nlfrom - Seitentitel vom Beginn der Indexierung.
- nlnamespace - Namensraum. Voreinstellung ist 0 für den Artikelraum.
- Beispiel:
query.php?what=nolanglinks&nllimit=10&nlfrom=A
- Weitere Parameter:
- category - listet Artikel einer bestimmten Kategorie auf.
- Weitere Parameter:
- cptitle - Name einer Kategorie, mit oder ohne dem Präfix 'Category:'.
- cplimit - Gesamtzahl der zurückzugebenden Seiten.
- cpfrom - Seitentitel vom Beginn der Indexierung.
- cpnamespace - Namensraum-ID: begrenzt Ausgabe auf kategorisierte Seiten des jeweiligen Namensraumes.
- cpextended - Gibt Zusatzinformationen wie den Sortierschlüssel und Zeitstempel aus.
- Beispiele:
query.php?what=category&cptitle=Mathematik
query.php?what=category&cptitle=!Hauptkategorie&cpnamespace=14
- zeigt die Unterkategorien der !Hauptkategorie
- Weitere Parameter:
- users - Liste der angemeldeten Benutzer.
- Weitere Parameter:
- usfrom - Seitentitel vom Beginn der Indexierung.
- uslimit - Gesamtzahl der zurückzugebenden Seiten.
- Beispiel:
query.php?what=users&usfrom=Y
- Weitere Parameter:
[Bearbeiten] Eigenschaften für eine spezielle Seite
- redirects: liefert zu Redirects weitere Informationen wie die ID oder doppelte Redirects.
- Beispiele:
query.php?what=redirects&titles=Hauptseite
query.php?what=recentchanges|redirects
(welche der letzten Änderungen sind Redirects?)
- Beispiele:
- permissions: Zugriffsrechte, überprüft für die gefundenen Seiten, ob sie vom Benutzer editiert werden können.
- Weitere Parameter:
- prcanmove - zeigt, ob die Seite verschoben werden kann.
- Beispiel:
query.php?what=permissions&titles=Hauptseite|Benutzer%20Diskussion:Fantasy
- Weitere Parameter:
- links: Liste aller Links.
- langlinks: Liste aller Interlanguage-Links.
- templates: Liste der verwendeten Vorlagen.
- backlinks: Liste der Links auf diese Seite.
- Weitere Parameter:
- blfilter - Filterkrieterium, nur 'redirects', 'nonredirects', 'existing' (blaue Links, Voreinstellung) oder 'all' (auch rote Links)
- blnamespace - nur verlinkte Seiten aus Namensraum-ID
- bllimit - Zahl der maximal zurückzugebenden Links
- blcontfrom - Fortsetzungspunkt. Verwende den 'next'-Wert von vorhergehenden Abfragen.
- Beispiel:
query.php?what=backlinks&titles=Hauptseite&bllimit=10
- Weitere Parameter:
- embeddedin: Liste der Seiten, die diese Seite als Vorlage verwenden.
- Weitere Parameter:
- eifilter - Filterkrieterium, nur 'redirects', 'nonredirects', 'existing' (blaue Links, Voreinstellung) oder 'all' (auch rote Links)
- einamespace - nur Seiten aus Namensraum-ID
- eilimit - Zahl der maximal zurückzugebenden Links
- eicontfrom - Fortsetzungspunkt. Verwende den 'next'-Wert von vorhergehenden Abfragen.
- Beispiel:
query.php?what=embeddedin&titles=Template:Stub&eilimit=10
- Weitere Parameter:
- imagelinks: Liste der Seiten, die dieses Bild verwenden.
-
- ilfilter - Filterkrieterium, nur 'existing' oder 'all' (Voreinstellung inkl. nicht existierender Bilder oder auf Wikimedia Commons gespeicherten)
- ilnamespace - nur Seiten aus Namensraum-ID
- illimit - Zahl der maximal zurückzugebenden Links
- ilcontfrom - Fortsetzungspunkt. Verwende den 'next'-Wert von vorhergehenden Abfragen.
- Beispiel:
query.php?what=imagelinks&titles=Bild:HermitageAcrossNeva.jpg&illimit=10
-
- revisions: Versionsgeschichte - Liste der Edits an einer Seite
- Weitere Parameter:
- rvuniqusr - liefert #rvlimit Versionen unterschiedlicher Autoren. *langsam*
- rvcomments - inkl. Zusammenfassungszeile
- rvcontent - inkl. ungeparsten Rohtext (Raw-Data). *langsam*
- rvlimit - Zahl der maximal zurückzugebenden Links für jede Seite. Voreinstellung ist 10 oder 0 wenn revids=... angegeben wurde.
- rvoffset - *Obsolet*, wird wahrscheinlich bald entfernt.
- rvstart - Zeitstempel des ältesten Eintrages.
- rvend - Zeitstempel des neuesten Eintrages.
- rvrbtoken - fügt für Admins den Zurücksetzen-Button in die Ausgabe ein.
- Beispiele:
query.php?what=revisions&titles=Hauptseite&rvlimit=10&rvcomments
– letzte 10 Versionen der Hauptseitequery.php?what=revisions&titles=Hauptseite&rvuniqusr&rvlimit=3&rvcomments
– letzte drei verschiedene Autoren mit ihrer jeweils letzten Version.
- Weitere Parameter:
- usercontribs: Liste der Benutzerbeiträge
- Weitere Parameter:
- uccomments - falls angegeben, werden Zusammenfassungszeilen mit aufgelistet.
- uclimit - Zahl der maximal zurückzugebenden Links für jeden Benutzer.
- uctop - Filterung nach Beiträgen, die noch aktuell sind: 'all' (Voreinstellung), 'only' (nur aktuelle), 'exclude' (alle nicht mehr aktuellen)
- ucrbtoken - fügt für Admins den Zurücksetzen-Button in die Ausgabe ein.
- Beispiel:
query.php?what=usercontribs&titles=Benutzer:Fantasy&uclimit=20&uccomments
- Weitere Parameter:
- imageinfo: Bilderinformationen
- Weitere Parameter:
- iiurl - fügt den Link auf die Bildddatei hinzu.
- iihistory - inkl. aller früheren Versionen.
- iishared - inkl. Bildbeschreibung von commons.
- Beispiel:
query.php?what=imageinfo|allpages&aplimit=10&apnamespace=6&iiurl
– zeigt die ersten 10 Bilder mit URLs
- Weitere Parameter:
- content: ungeparster Rohtext (Raw-Data) einer Seite.
-
- *langsam* Bitte vorsichtig einsetzen, um die Serverlast zu reduzieren. Je nach den Einstellungen bei revisions und rvcontent kann es zu Mehrfachausgaben kommen.
- Beispiele:
query.php?what=content&titles=Hauptseite
-
[Bearbeiten] Unterstützte Ausgabeformate
- xmlfm: XML-Format in HTML (Voreinstellung)
- Die Daten werden als eingerücktes XML mit Syntax-Hervorhebung ausgegeben. Fehler werden mit ausgegeben, können jedoch durch den Parameter 'nousage' unterdrückt werden.
- Beispiel:
query.php?what=info&format=xmlfm
- jsonfm: JSON-Format in HTML
- Beispiel:
query.php?what=info&format=jsonfm
- Beispiel:
- txt: print_r()-Ausgabe von PHP in HTML (Formatbeschreibung).
- Beispiel:
query.php?what=info&format=txt
- Beispiel:
- dbg: var_export()-(Quellcode-)Ausgabe von PHP in HTML (Formatbeschreibung).
- Beispiel:
query.php?what=info&format=dbg
- Beispiel:
- xml: XML-Format als Text
- Optional kann Einrückung mit dem Parameter 'xmlindent' gewählt werden. Fehler werden mit ausgegeben, können jedoch durch den Parameter 'nousage' unterdrückt werden. Bei der Anzeige mit dem Internet Explorer sind zahlreiche Probleme bekannt. Es sollte daher ein anderer Browser oder das XML-Format als HTML (xmlfm) benutzt werden.
- Beispiel:
query.php?what=info&format=xml
- json: JSON-Format als Text
- Beispiel:
query.php?what=info&format=json
- Beispiel:
- php: „Serielles“ PHP-Format mit serialize() (Formatbeschreibung).
- Beispiel:
query.php?what=info&format=php
- Beispiel:
- wddx: WDDX - Web-Datenaustauschformat (Formatbeschreibung)
- Beispiel:
query.php?what=info&format=wddx
- Beispiel:
[Bearbeiten] Siehe auch
- meta:API (engl.) - Weiterentwicklung zu einer vollständigen Mediawiki-API - derzeit (Dezember 2006) noch im α-Stadium