API:Client code
From MediaWiki.org
| This page is part of the MediaWiki API documentation. |
| Language: | English • 日本語 • русский |
|---|
Quick overview:
- Quick start guide
- FAQ
- Tutorial
- Formats
- Error reporting
- Restricting usage
- Cross-site requests
- Authentication
- Queries
- Search suggestions
- Expanding templates and rendering
- Purging pages' caches
- Parameter information
- Changing wiki content
- Watchlist feed
- Wikidata
- Extensions
- Using the API in MediaWiki and extensions
- Miscellaneous
- Implementation
- Client code
Contents |
API Access Libraries [edit]
Notes to library developers
- Please use GZip compression when making API calls (
Accept-Encoding: gzip).
- Bots eat up a lot of bandwidth, which is not free.
- You must set a descriptive User Agent header (
User-Agent: User name/email/framework/...)
- Please include your username and wiki or email address.
- You should attempt to minimize the number of API calls by asking for multiple items in one request. Use
titles=PageA|PageB|PageCand get all the needed lists and properties at the same time. Only ask for what you actually need. - We are planning to migrate to JSON-only API, removing all other formats like XML, YAML, and PHP.
- When querying, use the new continue parameter. (March 2013)
Bash [edit]
- See API:Client_code/Bash. Requires curl package.Smallman12q (talk) 00:02, 7 January 2013 (UTC)
C++ [edit]
- libmediawiki. There is a tutorial in KDE TechBase.
Clojure [edit]
Common Lisp [edit]
- cl-mediawiki is a Common Lisp wrapper for the mediawiki API. It is available as a direct download, or (more conveniently) via quicklisp.
Delphi/Object Pascal [edit]
- MediaWiki API Wrapper, based on ICS open-source sockets, with synchronous and asynchronous (event based) requests, requires the JEDI Code Library for dependencies.
Haskell [edit]
Java [edit]
- Bliki Engine - Java Wikipedia API - very complete. Can convert wikicode to HTML, DocBook or PDF.
- JavaWikiBotFramework - a Java library that makes almost all API functions accessible.
- Wiki.java — a simple one-class API implementation
Javascript [edit]
- https://github.com/macbre/nodemw - Node.js client.
- mediaWiki.Api - A ResourceLoader module that ships with MediaWiki core, abstracts many API logic calls into simple one liners.
- jQuery.ajax - Not specifically made for the MediaWiki API, but most queries are very simple with one or two lines of using
$.getJSON( .. )or$.ajax( .. ). - JsMwApi A convenience wrapper around raw requests, with some helpers for editing and parsing.
- mwapilib - A kind of crappy layer overtop of the requests. Make JS gadgets easier.
- Luasóg - A framework of standard requests (e.g. log in, log out, read, edit, etc.) as well as a general wrapper method. Includes some helpful stuff like throttling. Project includes a rudimentary IDE for off-site development and execution.
.NET [edit]
- AutoWikiBrowser's WikiFunctions library has classes for editing and getting lists of pages via the API. See ApiEdit
- WikiAccess - a C#-library that makes some API functions accessible, has write API.
- DotNetWikiBot Framework - written in C#, based on Microsoft® .NET Framework 2.0 (Tutorial)
- MorebitsDotNet contains C# code for uploading files through the API.
- LinqToWiki, strongly typed library for accessing most of MediaWiki API, with support for autocompletion
OCaml [edit]
Perl [edit]
- MediaWiki::API - A Perl module for interfacing with the MediaWiki API with file upload/download and editing support. (Debian package)
- MediaWiki::Bot - A higher-level Perl module with read and write functions. Easily extensible with plugins, for example to provide administrator functions.
- Documentation Wikibook
- Google Code project
- Client scripts
- Perl MediaWiki API - An open source Perl module wrapping many of the MediaWiki API functions.
PHP [edit]
There are many PHP frameworks for the api, see here for a full list and comparison of frameworks.
- SxWiki - a lightweight, simple MediaWiki bot framework. (Unmaintained since 2008)
- Apibot - a modular, somewhat ambitious bot with overlayed UNIX-like framework
Python [edit]
- Pywikipediabot - collection of python scripts (IRC)
- mwclient - a Python library that makes most of the API functions accessible.
- wikitools - Provides several layers of abstraction around the API.
- simplemediawiki - A simple, no-abstraction interface to the API (handles cookies and other extremely basic things)
- supersimplemediawiki - Very similar to simplemediawiki, except Python3 compatible
Ruby [edit]
- MediaWiki::Gateway - Ruby framework for the API. Actively maintained until August 2012, tested up to MediaWiki 1.19, compatible with Wikimedia wikis.
- RWikiBot - a Ruby framework using the API. No releases since 2008.
- rbmediawiki - Another Ruby framework that uses the API. No releases since 2009.
Tcl [edit]
- MediaWiki Tcl Bot Framework, includes IRC-RC Interface
Support Matrix [edit]
A support-matrix of many of the actively developed packages from this page for some of the more used API features can be found on the Wikia API Wiki.
See Also [edit]
- Collection of bot libraries on Wikipedia, several of these use the API.