The state of Wiki APIs.
I've been doing a little informal research into Wiki software options and Wiki APIs. I'm trying to understand the state of the Wiki software market, if you can call it that, and especially the state of Wiki APIs. This post is a summary of what I have learned so far.
Where we are
The WikiRpcInterface is supported by the most popular open source Wikis including UseModWiki, MoinMoin, PhpWiki, Twiki, and JSPWiki. Using this XML-RPC based API, you can:
- Get a list of recent changes in the Wiki
- Get Wiki pages in raw Wiki syntax format or transformed into HTML
- Get Wiki page metadata including name, last modified time, author, and revision number
- Get a list of all links on a Wiki page
- Create and update Wiki pages
Where we could be
Unfortunately, the list of Wikis that don't support the WikiRpcInterface is a lot longer than the list of those that do. For example, the popular open-source Java-based SnipSnap Wikiblog doesn't support it and neither does the Atlassian's new closed-source Java-based Wiki Confluence. SnipSnap provides no Wiki API at all. Confluence, on the other hand, supports an extensive API in both XML-RPC and SOAP-RPC flavors. With the Confluence API you can:
- Authenticate (login and logout)
- Manage Wiki user groups and permissions
- Get Wiki "space" and the Wiki pages within it
- Get Wiki pages in raw Wiki syntax format or transformed into HTML
- Get Wiki page meta data including previous revisions of the page
- Get a list of all links on a Wiki page
- Get comments and attachments associated with a Wiki space
- Transform Wiki syntax to HTML
- Search the Wiki
That's a pretty impressive list of capabilties and it has already inspired a slick GUI client called TimTam. Take a look at the cool screenshots. It's really a pity that TimTam only works with one Wiki - and a payware one at that.
A side note: I wanted to find out more about Wiki API support in the closed-source Socialtext Wiki/Weblog product line, but the Socialtext website is not very sociable. I could not find any detailed product information, documentation, or developer information on the site. They don't even have site search. I'm not ready to register for a free demo or marketing spam yet, so I'll look into Socialtext at a later time.
The way forward?
Recently, Joe Gregorio published an article called An Atom Powered Wiki. Joe showed how to add Atom API support to a simple Wiki. Joe's example API is very simple, only allowing getting, putting, and deleting Wiki pages but, because Atom is exensible, and in a SOAP compatible way, the Atom API could easily serve as the basis for a new standard Wiki API.
I still don't think Atom is stable enough to deploy in a commercial application, but when it is I'm pretty sure it'll find a way in to Confluence as an editing API (even if I have to sneak it into the codebase over a weekend). Hopefully, Atom's promise of clean extensibility will be delivered, so it can be done in a way that is compatible with other Atom-enabled wikis.
Posted by Charles Miller on May 16, 2004 at 09:28 PM EDT #
Posted by B. Rintoul on May 17, 2004 at 06:17 AM EDT #
http://bugs.snipsnap.org/browse/SNIPSNAP-256
(and it's probably available in SnipSnap CVS at time of this writing).
Posted by Klaus Hartlage on May 17, 2004 at 11:57 AM EDT #
Posted by Ludovic Dubost on July 07, 2004 at 10:39 PM EDT #