Client libraries
Comments0this wiki
There are many client libraries available for the various APIs that can be used to access Wikia data. Using them can give you a huge head-start on your app. Why write your own library when you can focus on writing your app instead!? :)
TODO: Maybe extract the tables into templates or subpages which can then be transcluded both on this page and on the page for the specific API's documentation.
Contents |
MediaWiki API
Edit
A ton of libraries can be found on MediaWiki.org's Client code page but with no support-matrix. Try to find the best ones and put them on this chart.
Also, Bot frameworks on Wikipedia.
For more background on the libraries, please read the notes below.
| Language | Library | Get article wikitext | Login | Editing | Get categories for page | Get pages in category | History | Delete | Protect | Upload | LyricWiki | Wikia |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Common Lisp | cl-mediawiki | Yes | Yes | Yes | No | No | Yes | No | No | No | No | No
|
| Delphi/Object Pascal | MediaWiki API Wrapper | ? | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No
|
| Haskell | mediawiki package | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No
|
| Java | JWBF | Yes | Yes | Yes | ? | Yes | ? | Yes | ? | Yes | No | No
|
| Java | Wiki.java | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No
|
| JavaScript | JS MediaWiki Client | Yes | Yes | Yes | Partial | Yes | Partial | Yes | ? | No | No | No
|
| .NET | ApiEdit | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No
|
| OCaml | ocaml-mediawiki | ? | Yes | Yes | ? | No | ? | ? | ? | Yes | No | No
|
| Perl | Perl MediaWiki API | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No
|
| PHP | botclasses.php | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No
|
| Python | PyWikipediaBot | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | No
|
| Ruby | MediaWiki::Gateway | Yes | Yes | Yes | Partial | Partial | Partial | Yes | Partial | Yes | Partial | No
|
| Tcl | MediaWiki Tcl Bot Framework | Yes | Yes | Yes | ? | Yes | ? | ? | ? | No | No | No
|
Notes
Edit
- The libraries which say they "Partially" support certain calls usually have a generic function where you can make whatever API calls you want, the input and output just aren't pre-formatted as functions.
- ApiEdit is what powers AutoWikiBrowser.
- The Delphi/Object Pascal MediaWiki API wrapper requires the JEDI Code Library for dependencies.
- Perl MediaWiki API was developed by Wikipedians and Sean Colombo and is used a decent amount at Wikia, specifically on LyricWiki.
- PyWikipediaBot - One of the most widely used bot frameworks for wikipedia.
- JS MediaWiki Client was developed at Wikia and is used there regularly (but is not Wikia-specific, it should work for any MediaWiki installation).
- There are a ton of PHP libraries for MediaWiki. So many, that they have their own PHP bot framework support matrix on Wikipedia.
- Since this is the listing of MediaWiki API libraries, most of them won't have support for the LyricWiki API and Wikia API. If you need a separate client library for those, please see the Client libraries page.
Is there a good way to make this support-matrix and the list on mediawiki.org not diverge or require duplicate work?
LyricWiki API
Edit
With REST and SOAP, it's so easy that most people appear to just roll-their-own code for accessing the system. However, as packages become available, they should be added to this table:
| Language | Library | set apiKey | getSong | getArtist | getHometown | getSOTD | getTopSongs | postSong |
|---|---|---|---|---|---|---|---|---|
| Java | ?? | ? | ? | ? | ? | ? | ? | ?
|
| JavaScript | ?? | ? | ? | ? | ? | ? | ? | ?
|
| Perl | Perl MediaWiki API | Partial | Yes | Yes | Yes | Yes | Yes | Yes
|
| Perl | Lyrics-Fetcher module | No | Yes | No | No | No | No | No
|
| PHP | ?? | ? | ? | ? | ? | ? | ? | ?
|
| Python | ?? | ? | ? | ? | ? | ? | ? | ?
|
| Ruby | ?? | ? | ? | ? | ? | ? | ? | ?
|
Note that not all functions are implemented on both REST and SOAP. Please refer to the table of what is implemented where on LyricWiki API/Support Matrix. If you need any of the functions on there, but they don't exist through the method you need yet, please let us know and we'll try to implement it right away.
Since SOAP APIs are made to be used without client libraries, the SOAP functionality should work for many languages without anything other than a SOAP library. For more information, see: LyricWiki_API/SOAP#Portability_Testing.
Wikia Custom API (Nirvana)
Edit
| Language | Library | get a method | post to method | html return type | json return type | fully customizable requests (set Controller, Method, format, etc.) |
|---|---|---|---|---|---|---|
| Java | ?? | ? | ? | ? | ? | ?
|
| JavaScript | jquery.wikia.js* | Yes | Yes | Yes | Yes | Yes
|
| PHP | ?? | ? | ? | ? | ? | ?
|
- * jquery.wikia.js has other functionality also and the Nirvana code hasn't been extracted out yet. It contains most of the extensions to jquery functionality that Wikia uses. The file is included on the live Wikia site and expects other things such as jquery (possibly other variables?) to already be loaded.