API:Embeddedin

From mediawiki.org
This page is a translated version of the page API:Embeddedin and the translation is 61% complete.
MediaWiki版本:
1.11

GET request to find all page(s) that embed a given page.

该模块可用作生成器

API帮助文档


list=embeddedin (ei)

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

Find all pages that embed (transclude) the given title.

Specific parameters:
Other general parameters are available.
eititle

Title to search. Cannot be used together with eipageid.

eipageid

Page ID to search. Cannot be used together with eititle.

Type: integer
eicontinue

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

einamespace

The namespace to enumerate.

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 *.
eidir

The direction in which to list.

One of the following values: ascending, descending
Default: ascending
eifilterredir

How to filter for redirects.

One of the following values: all, nonredirects, redirects
Default: all
eilimit

How many total pages to return.

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

示例

GET请求

Find all pages that embed the English Wikipedia's w:Computer page.


回应

{
    "batchcomplete": "",
    "query": {
        "embeddedin": [
            {
                "pageid": 14388072,
                "ns": 100,
                "title": "Portal:Computing"
            },
            {
                "pageid": 45719527,
                "ns": 2,
                "title": "User:SoSivr/sandbox"
            }
        ]
    }
}

示例代码

Python

#!/usr/bin/python3

"""
    get_embedded_lists.py

    MediaWiki API Demos
    Demo of `Embeddedin` module: Get all page(s) that
    embed a given page

    MIT License
"""

import requests

S = requests.Session()

URL = "https://en.wikipedia.org/w/api.php"

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "embeddedin",
    "eititle": "Computer",
    "eilimit": "20"
}

R = S.get(url=URL, params=PARAMS)
DATA = R.json()

PAGES = DATA["query"]["embeddedin"]

for p in PAGES:
    print(p["title"])

PHP

<?php
/*
    get_embedded_pages.php

    MediaWiki API Demos
    Demo of `Embeddedin` module: Get all page(s) that embed a given page

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "format" => "json",
    "list" => "embeddedin",
    "eititle" => "Computer",
    "eilimit" => "20"
];

$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"]["embeddedin"] as $k => $v ) {
    echo( $v["title"] . "\n" );
}

JavaScript

/*
    get_embedded_pages.js

    MediaWiki API Demos
    Demo of `Embeddedin` module: Get all page(s) that embed a given page

    MIT License
*/

var url = "https://en.wikipedia.org/w/api.php"; 

var params = {
    action: "query",
    format: "json",
    list: "embeddedin",
    eititle: "Computer",
    eilimit: "20"
};

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 pages = response.query.embeddedin;
        for (var p in pages) {
            console.log(pages[p].title);
        }
    })
    .catch(function(error){console.log(error);});

MediaWiki JS

/*
	get_embedded_pages.js

	MediaWiki API Demos
	Demo of `Embeddedin` module: Get all page(s) that embed a given page

	MIT License
*/

var params = {
		action: 'query',
		format: 'json',
		list: 'embeddedin',
		eititle: 'Computer',
		eilimit: '20'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	var pages = data.query.embeddedin,
		p;
	for ( p in pages ) {
		console.log( pages[ p ].title );
	}
} );

可能的错误

代码 信息
missingparam 需要eititle, eipageid中的一个参数。
eibadcontinue 无效继续参数。您应该传递由之前查询返回的原始值。

參見