API:OpenSearch
Outdated translations are marked like this.
Diese Seite ist Teil der Dokumentation der MediaWiki action API. |
GET-Abfrage um das Wiki zu durchsuchen und Ergebnisse im OpenSearch-Format zu erhalten.
API-Dokumentation
Beispiel
GET-Anfrage
api.php? action=opensearch& search=Hampi& limit=10& namespace=0& format=json [In der ApiSandbox ausprobieren]
Antwort
[
"Hampi",
[
"Hampi",
"Hampi (town)",
"Hampi Express",
...
],
[
"Hampi, also referred to as the Group of Monuments at Hampi, is a UNESCO World Heritage Site located in east-central Karnataka, India.",
"Hampi is a town in Hospet taluk of the Ballari district in the Indian state of Karnataka. Located along the Tungabhadra River in the east and center part of the state, near the border of Andhra Pradesh, Hampi is near the city of Hosapete.",
"The Hampi Express is a daily express train running between the Mysooru and Hubballi Junction, the headquarters of the South Western Railway in India.",
...
],
[
"https://en.wikipedia.org/wiki/Hampi",
"https://en.wikipedia.org/wiki/Hampi_(town)",
"https://en.wikipedia.org/wiki/Hampi_Express",
...
]
]
In Wikimedia-Wikis sind Beschreibungen aus Performance-Gründen deaktiviert, sodass das zweite Feld nur leere Zeichenketten enthält. Siehe T241437.
Beispielcode
Python
#!/usr/bin/python3
"""
opensearch.py
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
PARAMS = {
"action": "opensearch",
"namespace": "0",
"search": "Hampi",
"limit": "5",
"format": "json"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
print(DATA)
PHP
<?php
/*
opensearch.php
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "opensearch",
"search" => "Hampi",
"limit" => "5",
"namespace" => "0",
"format" => "json"
];
$url = $endPoint . "?" . http_build_query( $params );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );
$result = json_decode( $output, true );
var_dump( $result );
JavaScript
/*
opensearch.js
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
*/
var url = "https://en.wikipedia.org/w/api.php";
var params = {
action: "opensearch",
search: "Hampi",
limit: "5",
namespace: "0",
format: "json"
};
url = url + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});
fetch(url)
.then(function(response){return response.json();})
.then(function(response) {console.log(response);})
.catch(function(error){console.log(error);});
MediaWiki JS
/*
opensearch.js
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
*/
var params = {
action: 'opensearch',
search: 'Hampi',
limit: '5',
namespace: '0',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
console.log( data );
} );
Mögliche Fehler
Code | Information |
---|---|
nosearch | The search parameter must be set. |
unknown_format | Unrecognized value for parameter format: aaa. |
Zusätzliche Anmerkungen
Für MediaWiki-Seiten-Administratoren und Erweiterungs-Entwickler ein paar zusätzliche Hinweise mit Bezug zu dieser API:
- Erweiterung:TitleKey - erlaubt, dass bei Suchvorschlägen aus dieser API die Groß-/Kleinschreibung nicht berücksichtigt wird.
- Erweiterung:TextExtracts und
$wgExtractsExtendOpenSearchXml
konfiguriert als true inLocalSettings.php
ermöglicht jedem Objekt im XML-Format, eine<Description>
-Markierung mit einem Textauszug aus dem Artikel zu enthalten.
- Erweiterung:PageImages und
$wgPageImagesExpandOpenSearchXml
konfiguriert als true inLocalSettings.php
ermöglicht jedem Objekt im XML-Format, eine<Image>
-Markierung mit einem Vorschaubild aus dem Artikel zu enthalten.