API:Opensearch
Outdated translations are marked like this.
Ця сторінка є частиною документації по MediaWiki Action API. |
Запит GET для пошуку у вікі та отримання результатів у форматі OpenSearch.
Документація API
Приклад
Запит 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 - дозволяє пошукові пропозиції з цього API бути нечутливими до регістру.
- Extension:TextExtracts і
$wgExtractsExtendOpenSearchXml
, налаштовані як true вLocalSettings.php
, дозволять кожному елементу у форматі XML включати тег<Description>
з текстовим витягом зі статті.
- Extension:PageImages і
$wgPageImagesExpandOpenSearchXml
, налаштовані як true вLocalSettings.php
, дозволять кожному елементу у форматі XML включати тег<Image>
із мініатюрою зі статті.