واجهة برمجة التطبيقات:أحدث_التغييرات
هذه الصفحة جزء من توثيق واجهة برمجة تطبيقات ميدياويكي التي تحمل اسم Action. |
إصدار ميدياويكي: | ≥ 1.9 |
طلب GET يسرد قائمة بكافة أحدث التغييرات على موقع الويكي، بنفس الطريقة التي تسردها صفحة Special:RecentChanges.
توثيق واجهة برمجة التطبيقات
مثال
طلب GET
احصل على آخر 3 تغييرات وكذلك حجمها والوسوم المنطبقة عليها
api.php? action=query& list=recentchanges& rcprop=title|ids|sizes|flags|user& rclimit=3 [جربها في ApiSandbox]
النتيجة
{
"batchcomplete": "",
"continue": {
"rccontinue": "20180330090522|1041353210",
"continue": "-||"
},
"query": {
"recentchanges": [
{
"type": "edit",
"ns": 0,
"title": "Histology",
"pageid": 13570,
"revid": 833218500,
"old_revid": 833218201,
"rcid": 1041353213,
"user": "Iztwoz",
"oldlen": 25718,
"newlen": 25749
}
...
]
}
}
عينة من الكود البرمجي
Python
#!/usr/bin/python3
"""
get_recent_changes.py
MediaWiki API Demos
Demo of `RecentChanges` module: Get the three most recent changes with
sizes and flags
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
PARAMS = {
"format": "json",
"rcprop": "title|ids|sizes|flags|user",
"list": "recentchanges",
"action": "query",
"rclimit": "3"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
RECENTCHANGES = DATA['query']['recentchanges']
for rc in RECENTCHANGES:
print(str(rc['title']))
PHP
<?php
/*
get_recent_changes.php
MediaWiki API Demos
Demo of `RecentChanges` module: Get the three most recent changes with sizes and flags
MIT License
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "query",
"list" => "recentchanges",
"rcprop" => "title|ids|sizes|flags|user",
"rclimit" => "3",
"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 );
foreach( $result["query"]["recentchanges"] as $rc ){
echo( $rc["title"] . "\n" );
}
JavaScript
/*
get_recent_changes.js
MediaWiki API Demos
Demo of `RecentChanges` module: Get the three most recent changes with sizes and flags
MIT License
*/
var url = "https://en.wikipedia.org/w/api.php";
var params = {
action: "query",
list: "recentchanges",
rcprop: "title|ids|sizes|flags|user",
rclimit: "3",
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) {
var recentchanges = response.query.recentchanges;
for (var rc in recentchanges) {
console.log(recentchanges[rc].title);
}
})
.catch(function(error){console.log(error);});
MediaWiki JS
/*
get_recent_changes.js
MediaWiki API Demos
Demo of `RecentChanges` module: Get the three most recent changes with sizes and flags
MIT License
*/
var params = {
action: 'query',
list: 'recentchanges',
rcprop: 'title|ids|sizes|flags|user',
rclimit: '3',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
var recentchanges = data.query.recentchanges,
rc;
for ( rc in recentchanges ) {
console.log( recentchanges[ rc ].title );
}
} );
الأخطاء المحتملة
الكود | معلومات |
---|---|
rcshow | وسيط غير صحيحة; قد لا يتم تقديم قيم خاصة متبادلة. |
rcpermissiondenied | تحتاج إلى صلاحيةpatrol أو patrolmarks لطلب علم مراجع.
|
تاريخ المتغيرات
- v1.24:
rctoken
متقادم - v1.15: إزالة
rctitles
- v1.14: إضافة
rctitles
- v1.13: إضافة
loginfo
ملاحظات إضافية
- يمكن الاطلاع على عدة تصرفات سجل مستخدمًا هذه الوحدة البرمجية عدا تصرفات المراقبة منذ أنها ليست موجودة في جدول recentchanges .
- لا يجوز أن يكون ختم زمني الذي تبدأ القائمة منه أكبر من $wgRCMaxAge في الماضي، وهو 30 يوم على مواقع الويكي التابعة لويكيميديا.
- يجوز إدراج التغييرات الجديدة إلى جدول
recentchanges
بترتيب غير صحيح قليلًا فيما يخص ختمها الزمني. لهذا السبب، حينما تطلب أحدث التغييرات مرتين متتابعتين، يجوز أن يحتوي الرد الثاني على تغييرات حديثة مدرجة بعد بضع ثوانٍ قبل أحدث التغييرات المذكورة في الرد الأول. لو استدعيت هذه الوحدة البرمجية تكرارًا للحصول على دفق بيانات بأحدث التغييرات، فكر جديًا في إضافة مقدار من التداخل بين الطلبات حتى لا تغفل أية تغييرات. - يمكن استخدام هذه الوحدة البرمجية بصفة مولّد.
- ينفذ هذه الوحدة البرمجية ApiQueryRecentChanges.php .