Jump to content

API:Random

From mediawiki.org
This page is a translated version of the page API:Random and the translation is 100% complete.
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

list=random (rn)

(main | query | random)
  • This module requires read rights.
  • This module can be used as a generator.
  • Source: MediaWiki
  • License: GPL-2.0-or-later

Get a set of random pages.

Pages are listed in a fixed sequence, only the starting point is random. This means that if, for example, Main Page is the first random page in the list, List of fictional monkeys will always be second, List of people on stamps of Vanuatu third, etc.

Specific parameters:
Other general parameters are available.
rnnamespace

Return pages in these namespaces only.

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, 710, 711, 828, 829, 1198, 1199, 2600, 5500, 5501
To specify all values, use *.
rnfilterredir

How to filter for redirects.

One of the following values: all, nonredirects, redirects
Default: nonredirects
rnredirect
Deprecated.

Use rnfilterredir=redirects instead.

Type: boolean (details)
rnlimit

Limit how many random pages will be returned.

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

When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.

Examples:
Return two random pages from the main namespace.
api.php?action=query&list=random&rnnamespace=0&rnlimit=2 [open in sandbox]
Return page info about two random pages from the main namespace.
api.php?action=query&generator=random&grnnamespace=0&grnlimit=2&prop=info [open in sandbox]


Ö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 ile 0 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