API: mokymo programa

This page is a translated version of the page API:Tutorial and the translation is 93% complete.

Šiame vadove sužinosite apie MediaWiki Action API, kaip ją naudoti, užklausos formatą, paprastą užklausą ir projektų, naudojančių Action API, pavyzdžius.

MediaWiki Action API apžvalga

MediaWiki Action API yra REST pilna žiniatinklio paslauga, leidžianti vartotojams atlikti tam tikrus wiki veiksmus, pvz. puslapio kūrimas, autentifikavimas, analizavimas, paieška ir kt. API:Pagrindinis puslapis is a good starting point for understanding the API.

Jūsų programa siunčia užklausas API, kad gautų prieigą prie wiki funkcijų. Pavyzdžiui, prisijunkite prie wiki, kurkite ir redaguokite puslapį, ieškokite pavadinimo, ieškokite turinio teksto arba analizuokite turinį. Action API galima naudoti trečiųjų šalių kūrėjams, Wikimedia plėtinių kūrėjams ir wiki svetainių administratoriams.

Dešinėje šio puslapio šoninėje juostoje yra daug funkcijų, kurias palaiko API, sugrupuotų pagal kategorijas. Prieš siųsdami užklausas į wiki serverį, pirmiausia perskaitykite apžvalgos puslapius, tokius kaip duomenų formatai, klaidos ir įspėjimai ir Action API DUK.

Kaip naudotis MediaWiki Action API

Galite prašyti duomenų iš kliento pusės į serverį per HTTP ir gauti atsakymą standartiniu formatu (paprastai JSON). Užklausą sudaro galutinis taškas ir parametrų rinkinys. Galima pateikti dviejų tipų užklausas: GET ir POST. GET užklausos parametre URL būtų užklausos eilutė. Jei norite gauti POST užklausą, suformatuokite parametrus JSON formatu.

Užklausos formatas

All Wikimedia Wikis have endpoints in this format http://example.org/w/api.php. To operate on the MediaWiki main site or English Wikipedia, use the related endpoint. For example, the English Wikipedia is at https://en.wikipedia.org/w/api.php. For testing new accounts or test edits to pages, use the test wiki endpoint https://test.wikipedia.org/w/api.php.

URL užklausos eilutėje pridėkite parametrą action. Jis nurodo API, kurį veiksmą atlikti. Populiariausias veiksmas yra query (URL būtų action=query), kuris leidžia gauti duomenis iš wiki. Po action parametro pridėkite kitą parametrą, nurodydami, kurį iš trijų užklausos modulių tipų norite atlikti:

  • prop - gauti puslapių savybes  
  • list - gauti tam tikrą kriterijų atitinkančių puslapių sąrašą
  • meta - gauti meta informaciją apie wiki ir naudotoją

Galiausiai įtraukite parametrą format, kuris nurodo API, kokiu formatu gauti rezultatus. Rekomenduojamas formatas yra JSON. API anksčiau palaikė kitus išvesties formatus, tačiau jie paprastai nerekomenduojami.

 
Request format

Paprasta užklausa

Paimkime paprastos užklausos pavyzdį, kad suprastume, kaip atrodytų tipiška GET užklausa ir atsakymas Veiksmo API kontekste.

Ieškokime pavadinimo wiki. Mes naudosime search modulį, dokumentuotą API:Search .

GAUTI užklausą

Norint ieškoti puslapių pavadinimų ar turinio, atitinkančio Craig Noone, HTTP GET užklausos URL būtų toks:

Kiekvienos URL dalies paaiškinimas:

  • http://en.wikipedia.org/w/api.php is the main endpoint. In this case it is English Wikipedia.
  • action=query reiškia gauti duomenis iš wiki.
  • list=search reiškia gauti kriterijus atitinkančių puslapių sąrašą.
  • srsearch=Craig%20Noone nurodo puslapio pavadinimą arba turinį, kurio reikia ieškoti. %20 nurodo tarpo simbolį URL.
  • format=json nurodo JSON išvestį, kuris yra rekomenduojamas išvesties formatas.

Atsakymas

Atsakymas yra JSON formato dokumentas su puslapių pavadinimų sąrašu, atitinkančiu „Craig Noone“:

{
    "batchcomplete": "",
    "continue": {
        "sroffset": 10,
        "continue": "-||"
    },
    "query": {
        "searchinfo": {
            "totalhits": 210
        },
        "search": [
            {
                "ns": 0,
                "title": "Craig Noone",
                "pageid": 18846922,
                "size": 22548,
                "wordcount": 1771,
                "snippet": "<span class=\"searchmatch\">Craig</span> Stephen <span class=\"searchmatch\">Noone</span> (born 17 November 1987) is an English professional footballer who plays as a winger for Bolton Wanderers. Born in Kirkby, he has also",
                "timestamp": "2018-11-02T22:25:45Z"
            },
            {
                "ns": 0,
                "title": "Noone",
                "pageid": 32906333,
                "size": 553,
                "wordcount": 64,
                "snippet": "<span class=\"searchmatch\">Noone</span> is a surname that may refer to:  <span class=\"searchmatch\">Craig</span> <span class=\"searchmatch\">Noone</span> (born 1987), English football midfielder Jimmie <span class=\"searchmatch\">Noone</span> (1895–1944), American jazz clarinetist Kathleen",
                "timestamp": "2015-08-16T05:16:17Z"
            }
            ...
        ]
    }
}


== Projektų, naudojančių Action API ==, pavyzdžiai

Kai kurie „Wikimedia“ projektų, kuriuose naudojama „Action“ API, pavyzdžiai:

  • Wikipedia iOS App, kurioje viena iš funkcijų yra ieškoti wiki puslapių netoli jūsų vietos.
  • Botai, kurie veikia wiki. Pywikibot yra „Python“ parašyta roboto sistema, susieta su „MediaWiki“ API, kurią naudoja daugelis robotų kūrėjų.
  • API use in visualizing data obtained from a wiki. Such as this neat visualization that shows real time edits made on Wikipedia.

Papildomos pastabos

  • Kelios svetainės naudoja MediaWiki. Jie visi gali naudoti skirtingą MediaWiki versiją ir savo ruožtu API. Kai kurie modulio parametrai, palaikomi vienoje versijoje, gali būti nebenaudojami arba pašalinti kitose. Apie tai galite sužinoti kiekvieno modulio dokumentacijoje, naudodami API pagalbos modulį.
  • Jei norite atlikti daug API skambučių ir galbūt paleisti labai užimtus ir aktyvius robotus, iš anksto pasikalbėkite su wiki administratoriais, kad jie jūsų neužblokuotų. Žr. Wikimedia projektų administratorių sąrašą. Skaitykite daugiau apie šią temą API:Etiquette .
  • Visiems duomenų keitimo veiksmams, pvz., registravimui, redagavimui ar puslapio perkėlimui ir pakeitimų stebėjimui ar patruliavimui, reikės prieigos raktų. Norėdami tęsti, turėsite gauti žetonus per API:Tokens .

Resursai