API:Kategorie

From mediawiki.org
This page is a translated version of the page API:Categories and the translation is 100% complete.
Verze MediaWiki:
1.11

Žádost GET pro zobrazení kategorií spojených se stránkou nebo stránkami.

Tento modul lze použít jako zdroj .

Dokumentace API


prop=categories (cl)

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

List all categories the pages belong to.

Specific parameters:
Other general parameters are available.
clprop

Which additional properties to get for each category:

sortkey
Adds the sortkey (hexadecimal string) and sortkey prefix (human-readable part) for the category.
timestamp
Adds timestamp of when the category was added.
hidden
Tags categories that are hidden with __HIDDENCAT__.
Values (separate with | or alternative): hidden, sortkey, timestamp
clshow

Which kind of categories to show.

Values (separate with | or alternative): !hidden, hidden
cllimit

How many categories to return.

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

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

clcategories

Only list these categories. Useful for checking whether a certain page is in a certain category.

Separate values with | or alternative.
Maximum number of values is 50 (500 for clients that are allowed higher limits).
cldir

The direction in which to list.

One of the following values: ascending, descending
Default: ascending
Examples:
Get a list of categories the page Albert Einstein belongs to.
api.php?action=query&prop=categories&titles=Albert%20Einstein [open in sandbox]
Get information about all categories used in the page Albert Einstein.
api.php?action=query&generator=categories&titles=Albert%20Einstein&prop=info [open in sandbox]

Příklad

Dotazování přes GET

GET požadavek na zobrazení kategorií na stránce.


Odpověď

{
    "continue": {
        "clcontinue": "13828397|Afrofuturists",
        "continue": "||"
    },
    "query": {
        "pages": {
            "13828397": {
                "pageid": 13828397,
                "ns": 0,
                "title": "Janelle Mon\u00e1e",
                "categories": [
                    {
                        "ns": 14,
                        "title": "Category:1985 births"
                    },
                    {
                        "ns": 14,
                        "title": "Category:21st-century American actresses"
                    },
                    {
                        "ns": 14,
                        "title": "Category:21st-century American singers"
                    },
                    ...
                ]
            }
        }
    }
}

Ukázkový kód

Python

#!/usr/bin/python3

"""
    get_categories.py

    MediaWiki API Demos
    Demo of `Categories` module: Get categories associated with a page.

    MIT License
"""

import requests

S = requests.Session()

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

PARAMS = {
    "action": "query",
    "format": "json",
    "prop": "categories",
    "titles": "Janelle Monáe"
}

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

PAGES = DATA["query"]["pages"]

for k, v in PAGES.items():
    for cat in v['categories']:
        print(cat["title"])

PHP

<?php
/*
    get_categories.php

    MediaWiki API Demos
    Demo of `Categories` module: Get categories associated with a page.

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "format" => "json",
    "prop" => "categories",
    "titles" => "Janelle Monáe"
];

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

JavaScript

/*
    get_categories.js

    MediaWiki API Demos
    Demo of `Categories` module: Get categories associated with a page.

    MIT License
*/

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

var params = {
    action: "query",
    format: "json",
    prop: "categories",
    titles: "Janelle Monáe"
};

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.pages;
        for (var p in pages) {
            for (var cat of pages[p].categories) {
                console.log(cat.title);
            }
        }
    })
    .catch(function(error){console.log(error);});

MediaWiki JS

/*
	get_categories.js

	MediaWiki API Demos
	Demo of `Categories` module: Get categories associated with a page.

	MIT License
*/

var params = {
		action: 'query',
		format: 'json',
		prop: 'categories',
		titles: 'Janelle Monáe'
	},
	api = new mw.Api();

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

Možné chyby

Kód Popis
clshow Incorrect parameter - mutually exclusive values may not be supplied.

Historie parametrů

  • v1.20: Představeno cldir
  • v1.16: Představeno clprop=hidden
  • v1.15: Představeno clcategories
  • v1.14: Představeno clshow
  • v1.13: Představeno clcontinue, cllimit, clprop=timestamp

Související odkazy

  • API:Categorymembers - uvádí stránky, které jsou členy určité kategorie.
  • API:Allpages - vypíše všechny stránky splňující určitá kritéria. Může také přistupovat do kategorie namespace .
  • API:Allcategories - modul list , který získává kategorie z celé wiki na základě určitých kritérií souvisejících s názvem kategorie.