TiddlyWiki Server Side
See this discussion on tiddlywikidev
Background
There are four distinct ways in which TiddlyWiki can interact with a server:
- the server can generate a TiddlyWiki file with baked-in content. Usually, this means marking up empty.html so that it can be treated as a template into which tiddler text is spliced from, say, a database
- using the UploadPlugin? (or the new WebDAVSavingPlugin for TW 2.2) TiddlyWiki can save changes to a server instead of to a local file
- the server can participate in TiddlyWiki's infrastructure for importing, exporting and synchronising tiddlers between occasionally or manually connected stores
- the server can take over key TiddlyWiki operations to give the user the semantics of a traditional shared wiki
This discussion is chiefly concerned with the fourth category, but they overlap somewhat - these servers would still use the first technique to splice their machinery into the TiddlyWiki file in the first place.
Goals
To have a common server API that means you could link any client (from a full serverside TW plugin, to a tiny TW plugin to save Minesweeper scores to a common server, to a TiddlySnip-type browser extension) to any server (db-backed with versioning services like ccT and ZW, a read-only plugin repository, etc etc).
TW shouldn't really require it's own custom server implementations, but rather should use industry standard protocols to exploit existing servers. For example, Amazon's S3 and similar services expose commodotised data storage that is suitable for TiddlyWiki as a file-level storage medium. Similarly, Zope provides a commodotised content management system that TiddlyWiki can use as a tiddler-level storage medium.
Architecture
REST
MediaWiki? REST APIs
new API
MediaWiki REST API
Self documenting form of MediaWiki REST API
older API for retrieving data (will be obsolete upon new API completion).
MediaWiki REST Query API
Self documenting form of MediaWiki REST Query API
TWiki REST APIs
Socialtext REST
Moodle
Tiddlywiki integration with New Moodle Wiki
Confluence
Confluence Remote API Specification
Ruby helper class for Confluence XML-RPC
PBWiki
JavaScript? APIs
Useful links
Resources for Amazon Simple Storage Service
Google Data APIs (Beta) Developer's Guide
An overview of the Atom 1.0 Syndication Format
mime types: http://www.faqs.org/rfcs/rfc4288.html
