Jump to content

API: Difference between revisions

From Meta, a Wikimedia project coordination wiki
Content deleted Content added
Jacobolus (talk | contribs)
Jacobolus (talk | contribs)
→‎Essential functions: add more description
Line 29: Line 29:
===Essential functions===
===Essential functions===


; login
==== login ====
: in: username, password, (API key)
: out: success, authentication failure, or temporary failure


This function logs the user into mediawiki using a username and password. Other authentication methods could possibly be added in the future.
; read revision
: in: article title, revision ID, or page ID
: out: A format mostly identical to the current special:export, but also including some metadata about whether the page is a redirect, and the page to redirect to, so that the client does not need to parse the wikitext


; in : username, password, (API key)
; out : success, authentication failure, or temporary failure


; read history
==== read revision ====
: in: article title or page ID, range start, +- limit
:: range can be ISO date or revision ID. if negative range start, fetch last limit revisions bounded by some maximum of revisions: currently 5000
::always return up to 5000 revisions
: out: export xml metadata (see readrevision)


This function requests the full text of a single article revision, either by article title/page ID, in which case the most recent revision is fetched, or by revision ID. The return value is xml which includes the name of the page, the name of the most recent editor, a revision ID and timestamp, the full wikitext of the revision, and a flag if the article is a redirect, including the name of the page to which it redirects.
; write article

: in: last revision ID or 0 (if the page is new), page text, page title, comment, minor
; in : article title or page ID, or revision ID
: out: success(versionID), edit conflict fail, permission failure, temp failure
; out : A format mostly identical to the current special:export, but also including some metadata about whether the page is a redirect, and the page to redirect to, so that the client does not need to parse the wikitext

==== read history ====

This function requests the edit history of an article, referenced either by title, or by page ID. The range start parameter determines the first edit returned, referenced by revision ID or ISO date. The limit parameter determines how many pages before or since that edit should be in the list, up to 5000 revisions, or some other maximum to be determined.

; in
: article title or page ID, range start, +- limit
:: range start can be ISO date or revision ID.
:: if negative range start, fetch last limit revisions bounded by some maximum of revisions: currently 5000
:: always return up to 5000 revisions
; out: export xml metadata (see readrevision)

==== write article ====

This function attempts to save an article to the mediawiki server. The revision ID of the revision the edit is based on is provided so that in the case of an edit conflict, the function will fail. If another edit has been made to the page since the page was loaded, but a simple merge is possible, then the function will succeed.

; in : last revision ID or 0 (if the page is new), page text, page title, edit comment, minor edit flag
; out : success(version ID), edit conflict fail, permission failure, temp failure


==== Notes ====
==== Notes ====

; Date format
'''Date format:'''
: UTC only, [[w:ISO 8601|ISO 8601]]
: UTC only, [[w:ISO 8601|ISO 8601]]
: Date = 0 means the current revision
: Date = 0 means the current revision

'''Simple merges on write:'''
Because simple merges will be undertaken automatically by mediawiki, it is impossible to assume that when the write article function succeeds, the submitted text is authoritative. If further edits will be made, a new copy of the most recent revision should be fetched from the server.

Revision as of 01:48, 5 August 2006

I was not able to find a list of suggested API functions for retrieving Information via SOAP/WHATEVER. If you find one that already exists, please delete this page. If you consider meta inappropriete for this kind of page, please delete it. Or move it to my user name subpage. If you feel offended by the pseudo-syntax or naming of these functions, alter them unless they are beyond repair. Thanks.

Data Retrieval

Articles

article_mw ( string lemma )

article_mw() returns a single article from a wiki in the original Mediawiki syntax

article_xml ( string lemma )

article_xml returns a single article from a wiki in xml output

article_section_mw ( string lemma, int section)

returns a single section from a single article from a wiki in the original mediawiki syntax. section is the same as section in the edit option

Search

  • list of articles that contain string query
  • size of an article (chars, bytes, words)
  • list of authors of an article (ugly to compute when it comes to articles with 1000+ revisions)

Wikimania API discussion

The whiteboard these notes were taken from

A simple-as-possible API was quickly designed at the Wikimania Hacking Days on 4 August 2006. This minimal API only supports the most essential functions, with the goal of allowing a quick implementation, with other functionality (moving pages, uploading images, etc.) to be specified once a basic API has been implemented.

Essential functions

login

This function logs the user into mediawiki using a username and password. Other authentication methods could possibly be added in the future.

in
username, password, (API key)
out
success, authentication failure, or temporary failure

read revision

This function requests the full text of a single article revision, either by article title/page ID, in which case the most recent revision is fetched, or by revision ID. The return value is xml which includes the name of the page, the name of the most recent editor, a revision ID and timestamp, the full wikitext of the revision, and a flag if the article is a redirect, including the name of the page to which it redirects.

in
article title or page ID, or revision ID
out
A format mostly identical to the current special:export, but also including some metadata about whether the page is a redirect, and the page to redirect to, so that the client does not need to parse the wikitext

read history

This function requests the edit history of an article, referenced either by title, or by page ID. The range start parameter determines the first edit returned, referenced by revision ID or ISO date. The limit parameter determines how many pages before or since that edit should be in the list, up to 5000 revisions, or some other maximum to be determined.

in
article title or page ID, range start, +- limit
range start can be ISO date or revision ID.
if negative range start, fetch last limit revisions bounded by some maximum of revisions: currently 5000
always return up to 5000 revisions
out
export xml metadata (see readrevision)

write article

This function attempts to save an article to the mediawiki server. The revision ID of the revision the edit is based on is provided so that in the case of an edit conflict, the function will fail. If another edit has been made to the page since the page was loaded, but a simple merge is possible, then the function will succeed.

in
last revision ID or 0 (if the page is new), page text, page title, edit comment, minor edit flag
out
success(version ID), edit conflict fail, permission failure, temp failure

Notes

Date format:

UTC only, ISO 8601
Date = 0 means the current revision

Simple merges on write: Because simple merges will be undertaken automatically by mediawiki, it is impossible to assume that when the write article function succeeds, the submitted text is authoritative. If further edits will be made, a new copy of the most recent revision should be fetched from the server.