API:Alllinks/ru
Appearance
| Эта страница является частью документации по API действий MediaWiki. |
| Версия MediaWiki: | ≥ 1.11 |
GET-запрос на перечисление всех ссылок, указывающих на заданное пространство имён, упорядоченых по названию.
Этот модуль можно использовать как генератор.
Документация по API
Пример
По умолчанию этот модуль возвращает дубликаты, если страница содержит несколько ссылок, указывающих на одно и то же пространство имен.
В этом примере alunique=1 используется для удаления повторяющихся заголовков в ответе.
GET-запрос
Перечислить различные ссылки (т.е. без дубликатов), которые указывают на основное пространство имен.
Ответ
{
"batchcomplete": "",
"continue": {
"alcontinue": "!!!!Hashtagging",
"continue": "-||"
},
"query": {
"alllinks": [
{
"ns": 0,
"title": "!"
},
{
"ns": 0,
"title": "!!"
},
{
"ns": 0,
"title": "!!!"
},
...
}
Пример кода
Python
#!/usr/bin/python3
"""
get_alllinks.py
MediaWiki API Demos
Demo of `Alllinks` module: List links pointing to the given namespace.
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
PARAMS = {
"action": "query",
"format": "json",
"list": "alllinks",
"alnamespace": "0",
"alunique": "1"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
LINKS = DATA["query"]["alllinks"]
for l in LINKS:
print(l["title"])
PHP
<?php
/*
get_alllinks.php
MediaWiki API Demos
Demo of `Alllinks` module: List links pointing to the given namespace.
MIT License
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "query",
"format" => "json",
"list" => "alllinks",
"alnamespace" => "0",
"alunique" => "1"
];
$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"]["alllinks"] as $k => $v ) {
echo( $v["title"] . "\n" );
}
JavaScript
/*
get_alllinks.js
MediaWiki API Demos
Demo of `Alllinks` module: List links pointing to the given namespace.
MIT License
*/
var url = "https://en.wikipedia.org/w/api.php";
var params = {
action: "query",
format: "json",
list: "alllinks",
alnamespace: "0",
alunique: "1"
};
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 links = response.query.alllinks;
for (var l in links) {
console.log(links[l].title);
}
})
.catch(function(error){console.log(error);});
MediaWiki JS
/*
get_alllinks.js
MediaWiki API Demos
Demo of `Alllinks` module: List links pointing to the given namespace.
MIT License
*/
var params = {
action: 'query',
format: 'json',
list: 'alllinks',
alnamespace: '0',
alunique: '1'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
var links = data.query.alllinks,
l;
for ( l in links ) {
console.log( links[ l ].title );
}
} );
Возможные ошибки
| Код | Информация |
|---|---|
| badcontinue | Некорректный параметр continue. Вы должны передать значение, возвращённое предыдущим запросом. |
| invalidparammix | Параметр alprop=ids не может быть использован одновременно с alunique. Это происходит, когда вы используете
alprop=ids и alunique вместе |
Дополнительная информация
- Как и другие модули ссылок в API действий, этот модуль возвращает заголовки страниц, которые ссылаются на пространство имен, а не точные URI для этих страниц.
- Этот модуль можно использовать как генератор.
- Предыдущие версии возвращали ошибку, если пользователь пытался запустить этот модуль в качестве генератора, и
aluniqueбыл установлен в true. Это было изменено в v1.24, чтобы позволить использовать модуль в качестве генератора, даже еслиaluniqueистинно.
См. также
- API:Backlinks – список ссылок на данную страницу.
- API:Linkshere – аналогично API:Backlinks, получает ссылки на данную страницу. Обратите внимание, что в отличие от API:Backlinks, который является модулем
list, API:Linkshere является модулемprop. См. соответствующие страницы API:Свойства и API:Списки, чтобы узнать, как отличаются эти два вида модулей. - API: Ссылки – извлекает ссылки на заданной странице или страницах.