API:Opensearch
Jump to navigation
Jump to search
![]() | Ця сторінка є частиною документації по MediaWiki action API. |
Запит GET для пошуку у вікі та отримання результатів у форматі OpenSearch.
Ви повинні використовувати цей API, лише якщо ви розвиваєте веб-браузер. Це дозволило б вам отримати результати у стандартному та доступному форматі, придатному для синдикації або агрегації.
Документація API
action=opensearch(main | opensearch)
Search the wiki using the OpenSearch protocol. Parameters:
Example:
|
Приклад
Запит GET
Відповідь
[
"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",
...
]
]
На вікі Вікімедіа описи вимкнено з міркувань продуктивності, тому другий масив містить лише порожні рядки. Див. T241437.
Приклад коду
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 );
} );
Можливі помилки
Код | Інформація |
---|---|
nosearch | Параметр search має бути заповнений. |
unknown_format | Нерозпізнане значення для параметра format: aaa. |
Додаткові примітки
Пов’язані з цим API, декілька додаткових вказівок для адміністраторів сайтів та розробників розширень MediaWiki:
- Extension:TitleKey - allows search suggestions from this API to be case insensitive.
- Extension:TextExtracts and
$wgExtractsExtendOpenSearchXml
configured as true inLocalSettings.php
would allow each Item in the XML format to include a<Description>
tag with a text extract from the article. - Extension:PageImages and
$wgPageImagesExpandOpenSearchXml
configured as true inLocalSettings.php
would allow each item in the XML format to include an<Image>
tag with a thumbnail image from the article.