API:Random
Bu sayfa MediaWiki Eylem API'si belgelerinin bir parçasıdır. |
MediaWiki sürümü: | ≥ 1.12 |
Rastgele sayfaların listesini görüntülemek için GET isteği.
Bu modül jeneratör olarak kullanılabilir.
API belgesi
Örnek
GET isteği
5 rastgele sayfa listele
Yanıt
{
"batchcomplete": "",
"continue": {
"rncontinue": "0.559881820010|0.559881954661|47659388|0",
"continue": "-||"
},
"query": {
"random": [
{
"id": 32381675,
"ns": 0,
"title": "Mallabhum Institute of Technology"
},
{
"id": 25126452,
"ns": 3,
"title": "User talk:96.232.132.176"
},
{
"id": 1440028,
"ns": 0,
"title": "Hyundai Epsilon engine"
},
{
"id": 35446805,
"ns": 15,
"title": "Category talk:Ukrainian card games"
},
{
"id": 12613,
"ns": 0,
"title": "Grue"
}
]
}
}
Örnek kod
Python
#!/usr/bin/python3
"""
get_random.py
MediaWiki API Demos
Demo of `Random` module: Get request to list 5 random pages.
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
PARAMS = {
"action": "query",
"format": "json",
"list": "random",
"rnlimit": "5"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
RANDOMS = DATA["query"]["random"]
for r in RANDOMS:
print(r["title"])
PHP
<?php
/*
get_random.php
MediaWiki API Demos
Demo of `Random` module: Get request to list 5 random pages.
MIT License
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "query",
"format" => "json",
"list" => "random",
"rnlimit" => "5"
];
$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"]["random"] as $k => $v ) {
echo( $v["title"] . "\n" );
}
JavaScript
/*
get_random.js
MediaWiki API Demos
Demo of `Random` module: Get request to list 5 random pages.
MIT License
*/
var url = "https://en.wikipedia.org/w/api.php";
var params = {
action: "query",
format: "json",
list: "random",
rnlimit: "5"
};
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 randoms = response.query.random;
for (var r in randoms) {
console.log(randoms[r].title);
}
})
.catch(function(error){console.log(error);});
MediaWiki JS
/*
get_random.js
MediaWiki API Demos
Demo of `Random` module: Get request to list 5 random pages.
MIT License
*/
var params = {
action: 'query',
format: 'json',
list: 'random',
rnlimit: '5'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
var randoms = data.query.random,
r;
for ( r in randoms ) {
console.log( randoms[ r ].title );
}
} );
Parametre geçmişi
- v1.26: Önceki
rnlimit
üzerindeki 10/20 sınırı, standart 500/5000 sınırlarına yükseltildi. - v1.26:
rnredirect
kullanımdan kaldırıldı - v1.26:
rnfilterredir
tanıtıldı - v1.14:
rnredirect
tanıtıldı
Ek notlar
- Eylem API içindeki çoğu modülün aksine, döndürülen varsayılan sayfa sayısı 10 değil, 1'dir.
- Sayfalar sabit bir sırayla döndürülür; sadece başlangıç noktası rastgeledir.
- Varsayılan davranış, tartışma sayfaları, kullanıcı sayfaları vb. dahil olmak üzere tüm viki içinden sayfa seçmektir. Special:Random ile benzer işlevler arıyorsanız, yani rastgele maddeleri seçin,
rnnamespace
ile0
arasında kısıtlayın. - Sayfa sayısı
rnlimit
daha az ise, istek tüm kullanılabilir sayfaları döndürür. Sınıra kadar yanıtı doldurmak için sayfaları tekrarlamaz.
Ayrıca bakınız
- Manual:Random page - arka uçta API'nin nasıl yapılandırılacağını açıklar.