Aus EnzyklopAtys
Die letzte Bearbeitung war von Leda am 12.03.2023.
- • https://www.mediawiki.org/wiki/API:Main_page
- • https://www.mediawiki.org/wiki/API:Main_page/fr
- • https://www.mediawiki.org/wiki/API:Main_page/de
Inhaltsverzeichnis
- 1 Action API - Einführung
- 1.1 Action API - einfache Beispiele
- 1.2 Action API - Festlegen von Seiten
- 1.3 Action API - Normalisierung von Titeln
- 1.4 Auflösen von Weiterleitungen
- 1.5 Weitergehende Fragen
- 1.6 Abrufen einer Liste von Seiten-IDs
- 1.7 Export von Seiten
- 1.8 Generatoren: Verwenden Sie die Ausgabe einer Liste anstelle der Titel
- 2 Listen
- 3 Links
Action API - Einführung
Quelle: https://www.mediawiki.org/wiki/API:Query/de
Mit dem action=query-Modul kannst Du Informationen über ein Wiki und die darin gespeicherten Daten abrufen, z. B. den Wikitext einer bestimmten Seite, die Links und Kategorien einer Reihe von Seiten oder das Token, das Du zum Ändern von Wiki-Inhalten benötigst.
Das Abfragemodul hat viele Untermodule (Abfragemodule genannt), die jeweils eine andere Funktion haben. Es gibt 3 Arten von Abfragemodulen:
- Meta-Informationen über das Wiki und den angemeldeten Benutzer (z.B.: action=query&meta=submodule oder action=query&meta=submodule1|submodule2)
- Eigenschaften von Seiten, einschließlich Seitenrevisionen und Inhalt (z.B.: action=query&titles=title1&prop=property1|property2)
- Listen von Seiten, die bestimmten Kriterien entsprechen (die meisten Listenabfragen geben Listen standardmäßig 10 Elemente zurück, z. B.: action=query&list=list1|list2)
- Du solltest mehrere Abfragemodule zusammen verwenden, um das Gewünschte in einer Anfrage zu erhalten, z. B. prop=info|revisions&list=backlinks|embeddedin|allimages&meta=userinfo ist ein Aufruf an sechs Module in einer Anfrage.
Alle Eigenschaftsabfragemodule arbeiten mit einer Reihe von Seiten, die Du entweder mit den Parametern titles, pageids, revids oder generator angibst. Fordere nicht jeweils eine Seite an - das ist sehr ineffizient und verbraucht viele zusätzliche Ressourcen und Bandbreite: Fordere Informationen über mehrere Seiten an, indem du ihre Titel oder ids mit dem Symbol '|' pipe kombinierst: titles=PageA|PageB|PageC.
Verwende den Generator, wenn du Daten über eine Gruppe von Seiten abrufen willst, die das Ergebnis eines anderen API-Aufrufs sind. Wenn du z. B. Daten über Seiten in einer bestimmten Kategorie abrufen willst, solltest du, anstatt list=categorymembers abzufragen und dann erneut mit pageids auf alle zurückgegebenen Seiten zu setzen, die beiden API-Aufrufe zu einem einzigen kombinieren, indem du generator=categorymembers anstelle des list-Parameters angibst.
Wenn du Wikimedia-Wikis abfragst und die Ergebnisse als format=json (oder php) anforderst, dann gib formatversion=2 an. Das ursprüngliche Ergebnisformat war auf XML ausgelegt; die neue Struktur ist einfacher zu verarbeiten (und standardmäßig auf utf8 eingestellt).
Action API - einfache Beispiele
http://de.wiki.ryzom.com/w/api.php?action=query&prop=revisions&rvprop=content&format=jsonfm&formatversion=2&titles=Main%20Page holt einfach das Wiki-Markup (Inhalt) einer Seite: holt (action=query) den Inhalt (rvprop=content) der letzten Revision der Hauptseite (titles=Main%20Page) in JSON mit Leerzeichen, um es leichter lesbar zu machen (format=jsonfm).
Mit API Sandbox: ex1: action=query&prop=categories&generator=allpages&gapfrom=User_Manual- Beispiel 1 mit API Sandbox (über https://de.wiki.ryzom.com/wiki/Special:ApiSandbox#action=query&format=json&prop=categories&generator=allpages&utf8=1&formatversion=latest&clprop=timestamp&gapfrom=Benutzerhandbuch )
- Mit der API-Sandbox (Schaltfläche Weiter unten) Beispiel 1 in der Sandbox
- 🇩🇪 Beispiel 1 (Benutzerhandbuch) in der API Sandbox
Action API - Festlegen von Seiten
- Nach Name mit dem Parameter titles, z. B. titles=Foo|Bar|Main_Page
- Nach der Seiten-ID unter Verwendung des pageids-Parameters, z. B. pageids=123|456|75915
- Nach Revisions-ID unter Verwendung des revids-Parameters, z. B. revids=478198|54872|54894545
- Die meisten Abfragemodule wandeln die Revisions-ID in die entsprechende Seiten-ID um. Nur prop=revisions verwendet tatsächlich die Revisions-ID selbst.
- Verwendung eines Generators
Die Angabe von Titeln über den Abfrage-String (entweder über titles oder pageids) ist auf 50 Titel pro Abfrage begrenzt (oder 500 für diejenigen mit dem Recht apihighlimits, normalerweise Bots und Sysops).
https://www.mediawiki.org/wiki/API:FAQ/de
- Wenn Du versuchst, Informationen über eine Seite zu erhalten, wirst Du wahrscheinlich ein prop= Submodul von action=query verwenden. Andere Abfrage-Submodule geben Listen von Seiten und Meta-Informationen über das Wiki zurück. Sieh Dir die generierte API-Hilfe für alle Abfrage-Submodule an.
Action API - Normalisierung von Titeln
konvertiert Seitentitel in ihre kanonische Form (Cap, ersetzt _ durch Leerzeichen und ändert den Namespace in die für dieses Wiki definierte lokalisierte Form). Die Normalisierung der Titel erfolgt automatisch, unabhängig davon, welche Abfragemodule verwendet werden. Nachfolgende Zeilenumbrüche in Seitentiteln (\n) verursachen jedoch ein merkwürdiges Verhalten und sollten zuerst entfernt werden.
Fehlende und ungültige Titel: erscheinen im <Seiten>-Abschnitt, haben aber das Attribut fehlend oder ungültig gesetzt. In Ausgabeformaten, die numerische Array-Schlüssel unterstützen (JSON und PHP serialisiert), werden fehlende und ungültige Titel eindeutige, negative Seiten-IDs haben. Abfragemodule werden fehlende oder ungültige Titel einfach ignorieren, da sie damit nichts Sinnvolles anfangen können. Die Titel in den Special: und Media: Namespaces können nicht abgefragt werden.
Auflösen von Weiterleitungen
Wenn die Seite eine Weiterleitung hat, die Attribute von und bis enthalten und ein Attribut bisFragment für die Weiterleitungen enthalten können, die auf bestimmte Abschnitte verweisen.
Weitergehende Fragen
Wenn mehr Daten vorhanden sind, die der Abfrage entsprechen, enthält das API-Ergebnis ein continue-Element. Wenn Du weitere Daten wünschst, füge deren Werte (im Beispiel continue=-|| und accontinue=List_of_19th_century_baseball_players) zur ursprünglichen Anfrage hinzu, um die nächste Gruppe von Ergebnissen zu erhalten. Fahre so lange fort, bis ein API-Ergebnis kein continue-Element enthält, was bedeutet, daß es keine weiteren Daten gibt, die der Abfrage entsprechen.
Abrufen einer Liste von Seiten-IDs
Wenn nicht das neue JSON-Format Version=2 verwendet wird, wird die Ergebnisseite in JSON als ein Objekt zurückgegeben, das durch die Seiten-ID verschlüsselt ist, was schwierig sein kann, in JavaScript richtig zu iterieren. Der Parameter indexpageids gibt diese Seiten-IDs als Array zur einfacheren Iteration zurück. Beachte, daß die Reihenfolge dieser Seiten-IDs nicht unbedingt mit der Reihenfolge der Eingabe übereinstimmt (entweder direkt oder über einen Generator)
Export von Seiten
Wenn der Parameter export gesetzt ist, wird dem Ergebnis ein XML-Dump aller Seiten im <pages>-Element hinzugefügt - er liefert nur ein Ergebnis, wenn er mit angegebenen Titeln (Generator, titles, pageids oder revid) verwendet wird. Wenn der Parameter exportnowrap ebenfalls gesetzt ist, wird nur der XML-Dump (nicht in ein API-Ergebnis verpackt) zurückgegeben.
- Export von :en:User:Amosys/Draft/User_Manual/Part_4_-_Credits (mit ID, Revisions-ID und deren Mitwirkenden, Kommentar..) https://en.wiki.ryzom.com//w/api.php?action=query&titles=User:Amosys/Draft/User_Manual/Part_4_-_Credits%7CTalk:&export&exportnowrap
Generatoren: Verwenden Sie die Ausgabe einer Liste anstelle der Titel
Andere Abfragemodule behandeln die generierten Seiten so, als ob sie in einem Parameter angegeben wären. Es ist nur ein Generator erlaubt.
siehe Listen
Listen
https://www.mediawiki.org/wiki/API:Lists/de
Listen geben in der Regel Zusammenfassungen von Daten zurück, wie z. B. Seiten, die in einem Wiki gesammelt wurden, oder Links, die auf einer einzelnen Seite gesammelt wurden. Um eine Liste anzufordern, übergib dem list-Parameter Deines Query-Strings ein gültiges Listen-Submodul, wie z.B. allimages oder usercontribs.
Um die Listen-API zu verwenden, gib action=query&list=list1|list2 in der URL an.
Beispiel: list=allcategories https://www.mediawiki.org/wiki/API:Allcategories/de
- https://de.wikipedia.org/w/api.php?action=query&format=json&acfrom=15th-century%20caliphs&list=allcategories
- mit nb Seiten https://de.wiki.ryzom.com/w/api.php?action=query&format=json&acfrom=Gameplay&list=allcategories&acprop=size
- Die Antwort kann Kategorien enthalten, die gelöscht oder anderweitig leer sind => verwenden Sie acmin=1, um nicht leere Kategorien zu erhalten.
Parameter
acfrom Die Kategorie, in der die Aufzählung beginnen soll. accontinue Wenn weitere Ergebnisse verfügbar sind, fahren Sie damit fort. acto Die Kategorie, bei der die Aufzählung beendet werden soll. acprefix Suche nach allen Kategorietiteln, die mit diesem Wert beginnen. acdir Richtung, in der sortiert werden soll. Einer der folgenden Werte: ascending, descending. Standard: ascending. acmin Es werden nur Kategorien mit mindestens so vielen Mitgliedern zurückgegeben. Typ: integer. acmax Es werden nur Kategorien mit höchstens so vielen Mitgliedern zurückgegeben. Typ: integer. aclimit Wie viele Kategorien zurückgegeben werden sollen. Nicht mehr als 500 (5.000 für Bots) erlaubt. Typ: integer oder max. Standard: 10 acprop Welche Eigenschaften zu erwerben:
- size Fügt die Anzahl der Seiten in der Kategorie hinzu.
- hidden Tag-Kategorien, die mit __HIDDENCAT__ versteckt werden. Werte (getrennt mit | oder alternativ): size, hidden Standard: (leer)
Beispiel:
- Liste der Kategorien mit Informationen über die Anzahl der Seiten in jeder Kategorie api.php?action=query&list=allcategories&acprop=size Liste der Kategorien mit Informationen über die Anzahl der Seiten in jeder Kategorie
- Abrufen von Informationen über die Kategorieseite selbst für Kategorien, die mit Liste api.php?action=query&generator=allcategories&gacprefix=List&prop=info beginnen Liste ist leer Finde Infos auf der Seite der Kategorie selbst für Kategorien, die mit Liste beginnen.
- Informationen auf der eigentlichen Kategorieseite für die Kategorien, die mit Kategorie:Chroniken beginnen https://de.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=Chroniken&prop=info&format=json
- Kategorieseite selbst für Kategorien, die mit Chroniken beginnen https://de.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=Chroniken&prop=info&format=json
- mit Kategorie:Chroniken Seit 2562: Seit 2562&prop=info&format=json Chroniken Seit 2562 Seit 2562&prop=info Kategorie:Chroniken Seit 2562 (leer) und Seit 2562&prop=info Chroniken Seit 2562
Beispiele
Beispiel für die Auflistung von Seiten, die zu einer bestimmten Kategorie gehören list=categorymembers. https://www.mediawiki.org/wiki/API:Categorymembers/de
- 20 Seiten in Kategorie:Gameplay https://de.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Kategorie:Gameplay&cmlimit=20&format=json
- 20 Seiten in FR catégorie:gameplay https://fr.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:Gameplay&cmlimit=20&format=json
- 10 Artikel, die zuletzt zu einer Kategorie hinzugefügt wurden https://de.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Kategorie:Gameplay&cmsort=timestamp&cmdir=desc&format=json
- Gemeinsam mit User Manual v4 https://atys.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:User_Manual_v4&cmsort=timestamp&cmdir=desc&format=json
- Holen Sie sich 10 Unterkategorien einer Kategorie https://de.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:Gameplay&cmtype=subcat&format=json und im FR Wiki und aus Common unter EnzyklopAtys unter EnzyklopFR
Links
https://www.mediawiki.org/wiki/API:FAQ/de