واجهة برمجة التطبيقات:Opensearch
هذه الصفحة جزء من توثيق واجهة برمجة تطبيقات ميدياويكي التي تحمل اسم Action. |
طلب GET الغرض منه البحث في موقع الويكي والحصول على النتائج في صيغة OpenSearch.
توثيق واجهة برمجة التطبيقات
مثال
طلب 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. |
ملاحظات إضافية
فيما يخص واجهة برمجة التطبيقات هذه، هذه بعض من الأمور الإضافية المخصصة لإداري المواقع ومطوري الامتدادات على برمجيات ميدياويكي:
- Extension:TitleKey - السماح باقتراحات البحث من واجهة برمجة التطبيقات أن تطابق حالة الأحرف.
- سوف يسمح تحديد قيمة كلا من Extension:TextExtracts و
$wgExtractsExtendOpenSearchXml
لتكون true في ملفLocalSettings.php
أن يشتمل كل عنصر في صيغة XML على وسم<Description>
مع مستخلص من المقالة. - سوف يسمح تحديد قيمة كلا من Extension:PageImages و
$wgPageImagesExpandOpenSearchXml
لتكونtrue
في ملفLocalSettings.php
أن يشتمل كل عنصر في صيغة XML على وسم<Image>
مع صورة مصغرة من المقالة.