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
This section aims to aid extension developers who may want to introduce new API's as part of an extension.

Hinzufügen von Erweiterungen
Like all extensions, a unique extension directory needs to be added to the MediaWiki's extension directory. In this example, the extension will be named "MyExample".

The LocalSettings.php needs to include a reference to the new extension as:

The extension's JSON file be named extension.json in the root directory of the extension folder (in this case /extensions/ParameterTemplatesDemo/extension.json) and include the name, version, description, APIModules, and AutoloadClasses entries. The references to Special Page and Resource Modules are for client side queries.

I18N
The server implementation does rely on a valid i18n directory and JSON file existing, but not yet used in this example.

Implementierungsklasse
The implementation class must be in the includes directory. The implementation class must implement the interface of.

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: