واجهة برمجة التطبيقات:Opensearch

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page API:Opensearch and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎polski • ‎українська • ‎العربية • ‎中文 • ‎日本語 • ‎한국어

طلب GET الغرض منه البحث في موقع الويكي والحصول على النتائج في صيغة OpenSearch.

يجب عليك أن تستخدم واجهة برمجة التطبيقات هذه لو كنت تصمم متصفح ويب فقط. سوف يسمح لك هذا بالحصول على نتائج في صيغة قياسية يسيرة الاستخدام ملائمة لأغراض ترخيص الويب أو مجمعات نتائج البحث.

توثيق واجهة برمجة التطبيقات


action=opensearch

(main | opensearch)

Search the wiki using the OpenSearch protocol.

Parameters:
search

Search string.

This parameter is required.
namespace

Namespaces to search. Ignored if search begins with a valid namespace prefix.

Values (separate with | or alternative): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 90, 91, 92, 93, 100, 101, 102, 103, 104, 105, 106, 107, 486, 487, 828, 829, 1198, 1199, 2300, 2301, 2302, 2303, 2600, 5500, 5501
To specify all values, use *.
Default: 0
limit

Maximum number of results to return.

Type: integer or max
The value must be between 1 and 500.
Default: 10
profile

Search profile to use.

strict
Strict profile with few punctuation characters removed but diacritics and stress marks are kept.
normal
Few punctuation characters, some diacritics and stopwords removed.
normal-subphrases
Few punctuation characters, some diacritics and stopwords removed. It will match also subphrases (can be subphrases or subpages depending on internal wiki configuration).
fuzzy
Similar to normal with typo correction (two typos supported).
fast-fuzzy
Experimental fuzzy profile (may be removed at any time)
fuzzy-subphrases
Similar to normal with typo correction (two typos supported). It will match also subphrases (can be subphrases or subpages depending on internal wiki configuration).
classic
Classic prefix, few punctuation characters and some diacritics removed.
engine_autoselect
Let the search engine decide on the best profile to use.
One of the following values: classic, engine_autoselect, fast-fuzzy, fuzzy, fuzzy-subphrases, normal, normal-subphrases, strict
Default: engine_autoselect
suggest
Deprecated.

No longer used.

Type: boolean (details)
redirects

How to handle redirects:

return
Return the redirect itself.
resolve
Return the target page. May return fewer than limit results.

For historical reasons, the default is "return" for format=json and "resolve" for other formats.

One of the following values: resolve, return
format

The format of the output.

One of the following values: json, jsonfm, xml, xmlfm
Default: json
warningsaserror

If warnings are raised with format=json, return an API error instead of ignoring them.

Type: boolean (details)
Example:
Find pages beginning with Te.
api.php?action=opensearch&search=Te [open in sandbox]

مثال

طلب 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> مع صورة مصغرة من المقالة.

انظر أيضا