API:Otevřené vyhledávání
Appearance
| Tato stránka je součástí dokumentace k API Action MediaWiki. |
Požadavek GET pro vyhledávání wiki stránek podle názvu, toto používá Formát OpenSearch. Nesmí být zaměňováno se softwarovým balíčkem OpenSearch.
Dokumentace API
Příklad
Dotazování přes GET
Odpověď
[
"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",
...
]
]
Na wikinách Wikimedie jsou popisy zakázány z důvodu výkonu, takže druhé pole obsahuje pouze prázdné řetězce. Podívejte se na stránku T241437.
Ukázkový kód
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
*/
export async function getWikiSearch() {
const params = {
action: "opensearch",
search: "Hampi",
limit: "5",
namespace: "0",
format: "json",
};
const url =
"https://en.wikipedia.org/w/api.php?origin=*&" +
new URLSearchParams(params).toString();
try {
const data = await (await fetch(url)).json();
console.log(data);
} catch (error) {
console.error("Fetch error:", 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 );
} );
Možné chyby
| Kód | Popis |
|---|---|
| nosearch | The search parameter must be set. |
| unknown_format | Unrecognized value for parameter format: aaa. |
Další poznámky
V souvislosti s tímto rozhraním API několik dalších odkazů pro správce stránek a vývojáře rozšíření MediaWiki:
- Rozšíření:TitleKey - umožňuje, aby návrhy vyhledávání z tohoto rozhraní API nerozlišovaly malá a velká písmena.
- Extension:TextExtracts a
$wgExtractsExtendOpenSearchXmlnakonfigurované jako true vLocalSettings.phpby umožnily každé položce ve formátu XML zahrnout tag<Description>s textovým výpisem z článku. - Extension:PageImages a
$wgPageImagesExpandOpenSearchXmlnakonfigurované jakotruevLocalSettings.phpby umožnily každé položce ve formátu XML zahrnout značku<Image>s miniaturou z článku.