API:Etiquette/de

Diese Seite enthält beste Vorgehensweisen, die bei der Nutzung der API befolgt werden sollten.

Anforderungslimit
Es gibt keine feste Beschränkung für Leseanfragen, aber sei rücksichtsvoll und versuche, eine Seite nicht herunterzufahren. Die meisten Systemadministratoren behalten sich das Recht vor, Benutzer kurzerhand zu sperren, wenn sie die Stabilität ihrer Seite gefährden.

Wenn du deine Abfragen nicht parallel, sondern nacheinander stellst, sodass eine neue Abfrage erst gestartet wird, wenn die vorherige beendet wurde, sollte dies zu einer sicheren Abfragerate führen. Außerdem wird empfohlen, dass du in einer Abfrage mehrere Objekte abfragst, indem du:


 * Nutze das Pipe-Zeichen, wenn dies möglich ist, z.B. , anstatt für jeden Titel eine eigene Abfrage zu erstellen.
 * Nutze einen, anstatt für jedes Ergebnis aus einer anderen Abfrage eine Abfrage zu erstellen.


 * Nutze die GZip-Kompression beim Stellen von API-Abfragen, indem du  setzt, um die Bandbreiten-Nutzung zu reduzieren.

Abfragen, die Bearbeitungen verursachen, Statusänderungen verursachen oder anderweitig keine reinen Lese-Abfragen sind, unterliegen einem Limit. Das genaue Limit, das angewendet wird, kann von der Art der Aktion, deinen Benutzerrechten und der Konfiguration der Webseite, an die du die Abfrage richtest, abhängen. Du kannst herausfinden, welche Limits auf dich angewandt werden, indem du auf den API-Endpunkt action=query&meta=userinfo&uiprop=ratelimits zugreifst.

Wenn du das Abfragelimit erreichst, wirst du eine mit dem Fehlercode   erhalten. Wenn du diese Fehlermeldung erhältst, kannst du erneut versuchen, die Abfrage zu stellen, solltest jedoch die Zeit zwischen aufeinanderfolgenden Abfragen erhöhen. Eine verbreitete Strategie hierfür ist der Binary Exponential Backoff.

Parsing von Revisionen
While it is possible to query for results from a specific revision number using the  parameter, this is an expensive operation for the servers. To retrieve a specific revision use the  parameter. For example:

Der Parameter maxlag
If your task is not interactive, i.e. a user is not waiting for the result, you should use the  parameter. The value of the  parameter should be an integer number of seconds. Zum Beispiel:

This will prevent your task from running when the load on the servers is high. Higher values mean more aggressive behavior, lower values are nicer.

See for more details.

Der User-Agent-Header
It is best practice to set a descriptive User Agent header. To do so, use. For example in PHP:

Do not simply copy the user-agent of a popular web browser. This ensures that if a problem does arise it is easy to track down where it originates.

If you are calling the API from browser-based JavaScript, you may not be able to influence the  header, depending on the browser. To work around this, use the  header.

See m:User-Agent_policy for more details.

Datenmodell
All new API users. See for more details.

Performance
Downloading data in bulk is not always extremely efficient using the Action API. On Wikimedia wikis, there are faster ways to get data in bulk, see m:Research:Data and wikitech:Portal:Data Services for more details.

Siehe auch

 * - Die Schnellstart-Anleitung.