API:Templated parameters/de

Mit Stand können API-Anrufe zwei Level-Arrays nutzen, um Daten an die API zu übergeben. Dadurch werden die für API-Server verfügbaren Datenformate zum Erhalt von Argumenten von API-Clients erweitert.

Überblick
Die API-Struktur erlaubt API-Anrufen, zwei Stufen von Argumenten zur Auswertung an eine API zu übergeben.


 * Ein Modul kann einen Vorlagenparameter wie "{frucht}-menge" definieren, wobei die erkannten Parameter den Werten eines Parameters mit mehreren Werten entsprechen. Clients können dann Abfragen wie "fruits=apples|bananas&apples-quantity=1&bananas-quantity=5" stellen.
 * action=paraminfo wird Vorlagenparameter-Definitionen getrennt von normalen Parametern ausgeben. Alle Parameter-Definitionen enthalten nun einen "Index"-Schlüssel, um es Clients zu ermöglichen, eine Parameter-Sortierung zu pflegen, wenn normale und Vorlagenparameter vermischt werden.

Client-API
Der Client kann Vorlagenparameter genau so verwenden, wie ein Webservice aufgerufen wird, wobei Abfrage-Zeichenketten-Argumente oder HTTP-POST-Argumente genutzt werden.

Parameterinformationen
Die "paraminfo"-API-Abfrage kann genutzt werden, um die API über die Struktur ihrer Parameter abzufragen.

In diesem Beispiel heißt die Erweiterung ParameterTemplateDemo.

Für eine Beispiel-Entwicklungsmaschine (Wiki befindet sich unter machine/wikiprefix) wäre die API-Test-URL: http://machine/wikiprefix/api.php?action=paraminfo&modules=ParameterTemplateDemo

was folgendes ergeben würde:

Server-API-Implementation
Dieser Abschnitt soll Entwicklern von Erweiterungen helfen, die als Teil ihrer Erweiterung neue APIs einführen möchten.

Hinzufügen von Erweiterungen
Wie bei allen Erweiterungen muss ein einzigartiges Verzeichnis zum Verzeichnis der MediaWiki-Erweiterung hinzugefügt werden. In diesem Beispiel heißt die Erweiterung "MyExample".

LocalSettings.php muss einen Verweis auf die neue Erweiterung enthalten, wie:

Die JSON-Datei der Erweiterung hat den Namen extension.json im Haupt-Verzeichnis des Ordners der Erweiterung (in diesem Fall /extensions/ParameterTemplatesDemo/extension.json) und enthält den Namen, Version, Beschreibung, APIModule und Einträge zu AutoloadKlassen. Die Verweise auf Spezialseiten und Ressourcen-Module dienen für clientseitige Abfragen.

I18N
Die Server-Implementation verlässt sich auf ein gültiges i18n-Verzeichnis und eine existierende JSON-Datei, die jedoch in diesem Beispiel noch nicht genutzt werden.

Implementierungsklasse
Die Implementierungsklasse muss sich im eingeschlossenen Verzeichnis befinden. Die Implementierungsklasse muss die Benutzeroberfläche von implementieren.

Testing this class can be accomplished by using the built-in API test module. The URL would be http://machine/wikiprefix/api.php?action=ParameterTemplateDemo&fruits=apples|bananas&apples-quantity=1&bananas-quantity=5

A basically a "Hello World," this response just returns what it was passed in with the query string: