« Welcome Jaap van der... | Main | Struts Flow lives »

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.

Comments:

When coming up with the remote API for Confluence we looked at the existing APIs, but nothing seemed readily adaptable to Confluence without ugly hacks. The main problems we kept running into were application-level authentication and supporting multiple spaces. It turned out to make more sense to use our own API, and then write adapters for other wiki APIs if people requested them.. and after we had our own API working, nobody asked for another one.

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 #

Off topic. I was just checking out Roller and got that puppy working on my stand-alone little Linux box in less than 2 hours so I'm feeling proud of myself. Ha ha. Anyway, I'm looking for test subjects to try out my Firefox extension called "LookAhead". I think it's pretty neat-O. I don't know the etiquette on posting URLs, so let me just say if you search for "lookahead Firefox" - the quotes are my own, don't use them - in Google, you'll get here. Please try it for the sake of all sentient beings. Ha ha. Thanks for listening...

Posted by B. Rintoul on May 17, 2004 at 06:17 AM EDT #

I've not dived into the specs, but I think this MetaWeblog API effort which should make James Gosling's bloged editor work with snipsnap would be some kind of WikiRpcInterface:
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 #

XWiki support a bit of the WikiRpcInterface interface (getAllPages and getPage) and will soon get the rest of the API AND supports the confluence API almost completely (except the user management) The confluence API is much more suitable to XWiki too because of the different spaces.. However the API would need to be extended for multilingual support.. Currently working in XML-RPC with the XML-Face client (SOAP is needed for TimTam but I need a eclipse 3.0 TimTam to work on this in XWiki). Atom and Blogger APIs are also a long term goal for XWiki..

Posted by Ludovic Dubost on July 07, 2004 at 10:39 PM EDT #

Post a Comment:
  • HTML Syntax: NOT allowed

« Welcome Jaap van der... | Main | Struts Flow lives »

Welcome

This is just one entry in the weblog Blogging Roller. You may want to visit the main page of the weblog

Related entries

Below are the most recent entries in the category Blogging, some may be related to this entry.