Technischer Wiki-Leitfaden/API: Unterschied zwischen den Versionen

Aus EnzyklopAtys

Wechseln zu: Navigation, Suche
K
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
{{WIP}}
+
<noinclude>{{Trad|DE=Technischer_Wiki-Leitfaden/API|EN=Wiki Technical Guide/API|H=1|palette=tech}}</noinclude>
{{Trad|DE=Technischer_Wiki-Leitfaden/API|EN=Wiki Technical Guide/API|H=1|palette=tech}}
+
*• https://www.mediawiki.org/wiki/API:Main_page
• 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/fr
+
*• https://www.mediawiki.org/wiki/API:Main_page/de
• https://www.mediawiki.org/wiki/API:Main_page/de
 
  
== Action API - Intro ==
+
== Action API - Einführung ==
Source: https://www.mediawiki.org/wiki/API:Query#Introduction_and_guidelines
+
Quelle: https://www.mediawiki.org/wiki/API:Query/de
  
The '''action=query''' module allows you to get information about a wiki and the data stored in it, such as the wikitext of a particular page, the links and categories of a set of pages, or the token you need to change wiki content.  
+
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.  
  
The query module has many submodules (called query modules), each with a different function. There are '''3 types of query modules''':
+
Das Abfragemodul hat viele Untermodule (Abfragemodule genannt), die jeweils eine andere Funktion haben. Es gibt '''3 Arten von Abfragemodulen''':
* [https://www.mediawiki.org/wiki/Special:MyLanguage/API:Meta Meta information] about the wiki and the logged-in user (ex: <nowiki>action=query&meta=submodule</nowiki> or <nowiki>action=query&meta=submodule1|submodule2</nowiki>)
+
* [https://www.mediawiki.org/wiki/API:Meta/de Meta-Informationen] über das Wiki und den angemeldeten Benutzer (z.B.: <nowiki>action=query&meta=submodule</nowiki> oder <nowiki>action=query&meta=submodule1|submodule2</nowiki>)
* [https://www.mediawiki.org/wiki/Special:MyLanguage/API:Properties Properties] of pages, including page revisions and content (ex: action=query&titles=title1&'''prop=property1|property2''')
+
* [https://www.mediawiki.org/wiki/API:Properties/de Eigenschaften] von Seiten, einschließlich Seitenrevisionen und Inhalt (z.B.: action=query&titles=title1&'''prop=property1|property2''')
* [https://www.mediawiki.org/wiki/Special:MyLanguage/API:Lists Lists] of pages that match certain criteria (Most list queries return [https://www.mediawiki.org/wiki/API:Lists 10 items by default], ex: action=query&'''list=list1|list2''')
+
* [https://www.mediawiki.org/wiki/API:Lists/de Listen] von Seiten, die bestimmten Kriterien entsprechen (die meisten Listenabfragen geben [https://www.mediawiki.org/wiki/API:Lists/de Listen standardmäßig 10 Elemente zurück], z. B.: action=query&'''list=list1|list2''')
You should use multiple query modules together to get what you need in one request, e.g. '''prop=info|revisions&list=backlinks|embeddedin|allimages&meta=userinfo''' is a call to six modules in one request.  
+
* 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.  
  
all property query modules work on a set of pages that you specify using either '''titles''', '''pageids''', '''revids''', or '''generator''' parameters. Do not ask for one page at a time – this is very inefficient, and consumes lots of extra resources and bandwidth: request information about multiple  '''pages by combining their titles or ids with the '|' pipe''' symbol: titles=PageA|PageB|PageC.  
+
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.  
  
Use generator if you want to get data about a set of pages that would be the result of another API call. For ex, if you want to get data about pages in a certain category, instead of querying list=categorymembers and then querying again with pageids set to all the returned pages, you should combine the two API calls into one by specifying '''generator=categorymembers''' in place of the list parameter.  
+
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.  
  
If you're querying Wikimedia wikis and requesting results as format='''json''' (or php), then specify formatversion=2. The original result format was designed around XML; the new structure is easier to process (and defaults to utf8).  
+
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 - simple ex ===
+
=== Action API - einfache Beispiele ===
http://en.wiki.ryzom.com/w/api.php?action=query&prop=revisions&rvprop=content&format=jsonfm&formatversion=2&titles=Main%20Page simply gets the wiki markup (content) of a page: fetch (action=query) the content (rvprop=content) of the most recent revision of Main Page (titles=Main%20Page) in JSON with whitespace to make it easier to read (format=jsonfm).  
+
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).  
  
'''With API Sandbox:''' ex1: action=query&prop=categories&generator=allpages&gapfrom=User_Manual [[File:FR API Sandbox ex1 2019-06-26.png|200px|right|FR API Sandbox]]
+
'''Mit API Sandbox:''' ex1: action=query&prop=categories&generator=allpages&gapfrom=User_Manual [[File:FR API Sandbox ex1 2019-06-26.png|200px|right|FR API Sandbox]]
* 🇬🇧  [[Special:ApiSandbox#action=query&format=json&prop=categories&generator=allpages&utf8=1&formatversion=latest&clprop=timestamp&gapfrom=User_Manual|ex1 with API Sandbox]] (at https://en.wiki.ryzom.com/wiki/Special:ApiSandbox#action=query&format=json&prop=categories&generator=allpages&utf8=1&formatversion=latest&clprop=timestamp&gapfrom=User_Manual )  
+
* [[Special:ApiSandbox#action=query&format=json&prop=categories&generator=allpages&utf8=1&formatversion=latest&clprop=timestamp&gapfrom=Benutzerhandbuch|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 )  
* 🇫🇷 Avec le Bac à sable de l'API (bouton continuer en bas) [https://fr.wiki.ryzom.com/wiki/Sp%C3%A9cial:ApiSandbox#action=query&format=json&prop=categories&generator=allpages&utf8=1&formatversion=latest&clprop=timestamp&gapfrom=Manuel_de_l'utilisateur ex1 dans Bac à sable]  
+
* Mit der API-Sandbox (Schaltfläche Weiter unten) [https://de.wiki.ryzom.com/wiki/Special:ApiSandbox#action=query&format=json&prop=categories&generator=allpages&utf8=1&formatversion=latest&clprop=timestamp&gapfrom=Benutzerhandbuch Beispiel 1 in der Sandbox]  
* 🇩🇪 [https://de.wiki.ryzom.com/wiki/Spezial:ApiSandbox#action=query&format=json&prop=categories&generator=allpages&utf8=1&formatversion=latest&clprop=timestamp&gapfrom=Benutzerhandbuch ex1 (Benutzerhandbuch) im API-Spielwiese]
+
* 🇩🇪 [https://de.wiki.ryzom.com/wiki/Spezial:ApiSandbox#action=query&format=json&prop=categories&generator=allpages&utf8=1&formatversion=latest&clprop=timestamp&gapfrom=Benutzerhandbuch Beispiel 1 (Benutzerhandbuch) in der API Sandbox]
  
=== Action API - Specifying pages ===
+
=== Action API - Festlegen von Seiten ===
* By name using the titles parameter, e.g. '''titles'''=Foo|Bar|Main_Page
+
* Nach Name mit dem Parameter titles, z. B. '''titles'''=Foo|Bar|Main_Page
* By page ID using the pageids parameter, e.g. '''pageids'''=123|456|75915
+
* Nach der Seiten-ID unter Verwendung des pageids-Parameters, z. B. '''pageids'''=123|456|75915
* By revision ID using the revids parameter, e.g. '''revids'''=478198|54872|54894545
+
* Nach Revisions-ID unter Verwendung des revids-Parameters, z. B. '''revids'''=478198|54872|54894545
** Most query modules will convert revision ID to the corresponding page ID. Only prop=revisions actually uses the revision ID itself.
+
** Die meisten Abfragemodule wandeln die Revisions-ID in die entsprechende Seiten-ID um. Nur prop=revisions verwendet tatsächlich die Revisions-ID selbst.
* Using a generator
+
* Verwendung eines Generators
  
Specifying titles through the query string (either through titles or pageids) is limited to '''50 titles per query''' ('''or 500''' for those with the apihighlimits right, usually bots and sysops).  
+
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
+
https://www.mediawiki.org/wiki/API:FAQ/de
* If you are trying to get information about a page, you probably will use a prop= submodule of action=query. Other query submodules return lists of pages and meta-information about the wiki. View the generated API help of all query submodules.
+
* 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 - Title normalization ===
+
=== Action API - Normalisierung von Titeln ===
converts page titles to their '''canonical form''' (Cap, replacing _ with spaces, and changing namespace to the localized form defined for that wiki). Title normalization is done automatically, regardless of which query modules are used. However, any trailing line breaks in page titles ('''\n''') will cause odd behavior and they should be stripped out first.  
+
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.  
  
'''Missing and invalid titles''': appear in the <pages> section, but they have the missing or invalid attribute set. In output formats that support numeric array keys (JSON and PHP serialized), missing and invalid titles will have unique, ''negative page IDs''. '''Query modules will just ignore missing or invalid titles''', as they can't do anything useful with them. The titles in the '''Special: and Media: namespaces cannot be queried'''.
+
'''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'''.
  
=== Resolving redirects ===
+
=== Auflösen von Weiterleitungen ===
when the page has a redir, contain ''from'' and ''to'' attributes and may contain a ''tofragment'' attribute for those redirects that point to specific sections.  
+
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.  
  
=== Continuing queries ===
+
=== Weitergehende Fragen ===
there are more data matching the query, the API result includes a continue element. If you want further data, you would add its values (in the example, continue=-|| and accontinue=List_of_19th_century_baseball_players) to the original request to get the next set of results. You continue to do this until an API result does not have a continue element, indicating there are no more data matching the query.  
+
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.  
  
=== Getting a list of page IDs ===
+
=== Abrufen einer Liste von Seiten-IDs ===
When '''not using''' the new JSON formatversion=2, the result page set in JSON is returned as an object keyed by page ID which can be difficult to properly iterate over in JavaScript. The '''indexpageids''' parameter returns these page IDs as an array for easier iteration. Note that the ordering of these page IDs still does not necessarily correspond to the ordering of the input (whether directly or via a generator)
+
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)
  
https://en.wikipedia.org/w/api.php?action=query&titles=Main%20Page%7CFksdlfsdss%7CTalk:&indexpageids=&format=jsonfm
+
https://de.wikipedia.org/w/api.php?action=query&titles=Main%20Page%7CFksdlfsdss%7CTalk:&indexpageids=&format=jsonfm
  
=== Page export ===
+
=== Export von Seiten ===
If the '''export''' parameter is set, an XML dump of all pages in the <pages> element will be added to the result - it only gives a result when used with specified titles (Generator, titles, pageids or revid).
+
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.
If the '''exportnowrap''' parameter is also set, only the XML dump (not wrapped in an API result) will be returned.  
+
Wenn der Parameter '''exportnowrap''' ebenfalls gesetzt ist, wird nur der XML-Dump (nicht in ein API-Ergebnis verpackt) zurückgegeben.  
  
* export of User:Amosys/Draft/User_Manual/Part_4_-_Credits (with id, revision id and its contributor, comment..) https://en.wiki.ryzom.com//w/api.php?action=query&titles=User:Amosys/Draft/User_Manual/Part_4_-_Credits|Talk:&export&exportnowrap
+
* 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|Talk:&export&exportnowrap
  
=== Generators: use the output of a list instead of the titles ===
+
=== Generatoren: Verwenden Sie die Ausgabe einer Liste anstelle der Titel ===
Other query modules will treat generated pages as if they were given in a parameter. Only one [https://www.mediawiki.org/wiki/API:Query#Generators generator] is allowed.  
+
Andere Abfragemodule behandeln die generierten Seiten so, als ob sie in einem Parameter angegeben wären. Es ist nur ein [https://www.mediawiki.org/wiki/API:Query/de#Beispiel_6:_Generatoren Generator] erlaubt.  
  
 +
siehe [https://www.mediawiki.org/wiki/API:Lists/de Listen]
  
 +
== Listen ==
 +
https://www.mediawiki.org/wiki/API:Lists/de
  
see [https://www.mediawiki.org/wiki/Special:MyLanguage/API:Lists lists]
+
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.
  
== Lists ==
+
Um die Listen-API zu verwenden, gib '''action=query&list=list1|list2''' in der URL an.  
https://www.mediawiki.org/wiki/API:Lists
 
  
Lists generally return aggregations of data, such as pages gathered from across a wiki, or links gathered within a single page. To request a list, pass the list parameter of your query string a valid list submodule, such as allimages or usercontribs.
+
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.
  
To use the list API, specify '''action=query&list=list1|list2''' in the URL.
+
=== Parameter ===
  
Ex '''list=allcategories''' https://www.mediawiki.org/wiki/API:Allcategories
+
'''acfrom'''    Die Kategorie, in der die Aufzählung beginnen soll.
* https://en.wikipedia.org/w/api.php?action=query&format=json&acfrom=15th-century%20caliphs&list=allcategories
+
'''accontinue'''    Wenn weitere Ergebnisse verfügbar sind, fahren Sie damit fort.
* with nb pages https://en.wiki.ryzom.com/w/api.php?action=query&format=json&acfrom=Gameplay&list=allcategories&acprop=size
+
'''acto'''    Die Kategorie, bei der die Aufzählung beendet werden soll. 
* response may include categories that are deleted or otherwise empty => use '''acmin=1''' to get non empty ones.
+
'''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 <nowiki>__HIDDENCAT__</nowiki> versteckt werden. Werte (getrennt mit | oder alternativ): size, hidden Standard: (leer)
  
=== Parameters ===  
+
Beispiel:
 +
* Liste der Kategorien mit Informationen über die Anzahl der Seiten in jeder Kategorie [https://de.wiki.ryzom.com/w/api.php?action=query&list=allcategories&acprop=size api.php?action=query&list=allcategories&acprop=size]  [https://fr.wiki.ryzom.com/w/api.php?action=query&list=allcategories&acprop=size%20api.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 [https://de.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=List&prop=info 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 [https://de.wiki.ryzom.com/wiki/Kategorie:Chroniken 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 [[:Kategorie:Chroniken|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]]:  [https://de.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=Chroniken Seit 2562&prop=info&format=json Chroniken Seit 2562] [https://de.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=Chroniken Seit 2562&prop=info Kategorie:Chroniken Seit 2562] (leer) und [https://de.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=Chroniken Seit 2562&prop=info Chroniken Seit 2562]
  
'''acfrom'''    The category to start enumerating from.
+
=== Beispiele ===
'''accontinue'''    When more results are available, use this to continue.
+
Beispiel für die Auflistung von Seiten, die zu einer bestimmten Kategorie gehören '''list=categorymembers'''. https://www.mediawiki.org/wiki/API:Categorymembers/de
'''acto'''    The category to stop enumerating at. <br />
+
* 20 Seiten in [[:Kategorie:Gameplay]] https://de.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Kategorie:Gameplay&cmlimit=20&format=json
'''acprefix'''    Search for all category titles that begin with this value.
+
* 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
'''acdir'''    Direction to sort in.    One of the following values: ascending, descending    Default: ascending<br />
+
* 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
'''acmin'''    Only return categories with at least this many members.    Type: integer
+
* Gemeinsam mit [https://atys.wiki.ryzom.com/wiki/Category:User_Manual_v4 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
'''acmax'''    Only return categories with at most this many members.    Type: integer<br />
+
* 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 [https://fr.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:Gameplay&cmtype=subcat&format=json FR Wiki] und aus [https://atys.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:Encyclopatys&cmlimit=20&cmtype=subcat&format=json Common unter EnzyklopAtys] unter [https://atys.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:EncyclopFR&cmtype=subcat&format=json EnzyklopFR]
'''aclimit'''    How many categories to return.    No more than 500 (5,000 for bots) allowed.    Type: integer or max    Default: 10
 
'''acprop'''    Which properties to get:
 
* '''size'''      Adds number of pages in the category.
 
* '''hidden'''        Tags categories that are hidden with <nowiki>__HIDDENCAT__</nowiki>.    Values (separate with | or alternative): size, hidden    Default: (empty)
 
 
 
Ex:
 
* List categories with information on the number of pages in each    [https://en.wiki.ryzom.com/w/api.php?action=query&list=allcategories&acprop=size api.php?action=query&list=allcategories&acprop=size]  [https://fr.wiki.ryzom.com/w/api.php?action=query&list=allcategories&acprop=size%20api.php?action=query&list=allcategories&acprop=size Liste des catégories avec des infos] sur le nb de pages dans chaque catégorie
 
* Retrieve info about the category page itself for categories beginning List '''api.php?action=query&generator=allcategories&gacprefix=List&prop=info'''  [https://en.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=List&prop=info List is empty] Retrouvez des infos sur la page de la catégorie elle-même pour les catégories commençant par Liste.
 
** infos sur la page de la catégorie elle-même pour les catégories commençant par [https://fr.wiki.ryzom.com/wiki/Cat%C3%A9gorie:Chroniques Catégorie:Chroniques]  https://fr.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=Chroniques&prop=info&format=json
 
** category page itself for categories beginning [[:Category:Chronicles|Chronicles]] https://en.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=Chronicles&prop=info&format=json
 
** with [[:Category:Chronicles Since 2562]]:  [https://fr.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=Chroniques_Depuis_2562&prop=info&format=json Chroniques Depuis 2562] [https://de.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=Chronicles_Since_2562&prop=info Kategorie:Chroniken Seit 2562] (empty)  and [https://en.wiki.ryzom.com/w/api.php?action=query&generator=allcategories&gacprefix=Chronicles_Since_2562&prop=info Chronicles Since 2562]
 
 
 
=== examples ===
 
Ex to list pages that belong to a given category '''list=categorymembers'''. https://www.mediawiki.org/wiki/API:Categorymembers  
 
* 20 p in [[:category:gameplay]] https://en.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:Gameplay&cmlimit=20&format=json
 
* 20 p 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 articles most recently added to a category https://en.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:Gameplay&cmsort=timestamp&cmdir=desc&format=json
 
* same on common with [https://atys.wiki.ryzom.com/wiki/Category:User_Manual_v4 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
 
* Get '''10 subcategories of a category''' https://en.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:Gameplay&cmtype=subcat&format=json and on [https://fr.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:Gameplay&cmtype=subcat&format=json FR wiki] and ex [https://atys.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:Encyclopatys&cmlimit=20&cmtype=subcat&format=json on common under Encyclopatys] under [https://atys.wiki.ryzom.com/w/api.php?action=query&list=categorymembers&cmtitle=Category:EncyclopFR&cmtype=subcat&format=json EncyclopFR]
 
  
 
== Links ==
 
== Links ==
https://www.mediawiki.org/wiki/API:FAQ/fr
+
https://www.mediawiki.org/wiki/API:FAQ/de
 
 
  
 
----------------------------------------------------------
 
----------------------------------------------------------
  
[[Category:Help]]
+
<noinclude>
 +
[[Kategorie:Hilfe]]
 +
</noinclude>

Aktuelle Version vom 12. März 2023, 10:32 Uhr

de:Technischer_Wiki-Leitfaden/API en:Wiki Technical Guide/API
 
UnderConstruction.png
Übersetzung zur Überprüfung
Gib nicht den Mitwirkenden die Schuld, sondern komm und hilf ihnen. 😎

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
FR 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)

https://de.wikipedia.org/w/api.php?action=query&titles=Main%20Page%7CFksdlfsdss%7CTalk:&indexpageids=&format=jsonfm

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.

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

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:

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

Links

https://www.mediawiki.org/wiki/API:FAQ/de