P@ Sunglasses

« Previous day (Sep 19, 2004) | Main | Next day (Sep 21, 2004) »

20040920 e hënë shtator 20, 2004

A quick history of the weblog posting APIs

A little history and explanation of the various weblog posting APIs.

Please feel free to correct me: I've taken the blogging train only in 2002 and have not lived through all the history of this evolution, so some facts stated here may be wrong.

XML-RPC is a 1998 spec by Userland's Dave Winer for RPC in his proprietary content management tool Frontier.
Then Winer worked with Microsoft to spec out SOAP.

In the meantime as blogging got more successful the blogging crowd wanted an API to post to a blog from a client or server tool, wihtout using a HTML form.

1. Blogger API

Blogger shot first, 8/7/2001,with the Blogger API , a very simple API based on XML-RPC.
Its methods are very simple and limited: get and set some weblog texts.

blogger.newPost: Makes a new post to a designated blog. Optionally, will publish the blog after making the post.

blogger.editPost: Edits a given post. Optionally, will publish the blog after making the edit.

blogger.getUsersBlogs: Returns information on all the blogs a given user is a member of.

blogger.getUserInfo: Authenticates a user and returns basic user info (name, email, userid, etc.).

blogger.getTemplate: Returns the main or archive index template of a given blog.

blogger.setTemplate: Edits the main or archive index template of a given blog.

2. MetaWeblog API

Then in 3/14/2002 Userland's Dave Winer published the MetaWeblog API, still based on XML-RPC, to address the blogger API shortcomings: from the "spec"

Relationship between MetaWeblog API and the Blogger API

The MetaWeblog API is designed to enhance the Blogger API, which was limited in that it could only get and set the text of weblog posts. By the time MWA was introduced, in spring 2002, many weblog tools had more data stored with each post, and without an API that understood the extra data, content creation and editing tools could not access the data.

At the time of this writing, summer 2003, most popular weblog tools and editors support both the Blogger API and the MetaWeblog API.

Relationship between MetaWeblog API and RSS 2.0

The MetaWeblog API uses an XML-RPC struct to represent a weblog post. Rather than invent a new vocabulary for the metadata of a weblog post, we use the vocabulary for an item in RSS 2.0. So you can refer to a post's title, link and description; or its author, comments, enclosure, guid, etc using the already-familiar names given to those elements in RSS 2.0. Further since RSS 2.0 is extensible, so is the MetaWeblog API. We have designed conventions for representing attributes and namespaces in MWA.

This API was successful and is implemented in most weblog servers (Movable Type, Roller) and clients (Ecto, NetNewsWire Pro).
The main long term additions concern getting recent posts, attaching media files to a post, setting and retrieving categories, and extensibility (sending attributes for post elements, and using namespaces).
But it is tied to RSS 2.0.

David Czarnecki's first comment to this post outlines the variety of ways this spec can be implemented on client or servers, making the use of this spec very experimental: just try a combination of client and server and cross your fingers to see if it will work.

3. Atom

Then in early 2003 Sam Ruby, the intertwingled one (from Apache/IBM), tired of the endless fights between RSS 1.0 and 2.0, started the Atom project (initially Echo) to define a new standard for syndication, including extensibility and APIs.

The spec was designed collaboratively on the Atom Wiki. Tim Bray participated into that, as well as most blogland except Dave Winer who was pushing for RSS 2.0. In spring 2004 Sam Ruby proposed to submit it at the IETF as a standard. The standardization work is in process now and should be finished by the beginning of 2005.

The Atom API follows the REST architectural style (GET, PUT, DELETE, POST) with an option to use SOAP.
It generated a lot of noise and disputes in the blogging community.

Although I did not participate directly, I am personnaly very much in favor of it: I seems like it will be a "real" specification, and its design last time I looked was pretty clean. The problem with the Meta Weblog API is that the specification is open to interpretation and very often clients and servers implement it either incorrectly or using different interpretations, resulting half working solutions and strange error messages. Atom should be more strict, so more straightforward to validate, yielding better interoperability.

It is quite recent and is not implemented in all servers yet, but I'm sure it will. Movable Type supports it, and Google recently chose it for their feeds (Google acquired blogger last year). However when people say they support it, it usually means for generating feeds, not for the publishing API (Movable Type 3.0 implements the Atom API draft). But that will come in due time.
Dave Winer must have felt that because in april he offered the olive branch to try to make RSS 2.0 and Atom converge.

Conclusion for blogs.sun.com

Roller today implements part of the Meta Weblog API (not the newMedia() method so you cannot post pictures), so this is what you need your weblog client to use if you want to post to blogs.sun.com. The code for the Meta Weblog API in Roller comes from David Czarnecki's Blojsom (another nice weblog server in java, that was included in Mac OS X 10.4 server last june) and his latest version includes the newMedia() implementation. We just need to push it in Roller.

Dave Johnson plans to add support for Atom API in Roller. It will probably be based on Lance Lavandowska's Atom4J project.

References

As usual Mark Pilgrim has the best writeup on this topic: The Atom API

The Roller Wiki has a good set of links for further reading on the topic: WeblogAPIs.

( Sht 20 2004, 04:08:05 MD PDT ) Permalink Comments [9] Chat about it Technorati cosmos Tagsurf It

test blogplanet test blogplanet test bold

Obviously it worked, but on the phone I received an error message and was not sure it was posted. Moreover this client does not let me post pictures from the Treo camera.

---
This post was made with a trial version of BlogPlanet, a photo blog client for mobile phones. For more information visit www.blogplanet.net
.

( Sht 20 2004, 09:00:07 PD PDT ) Permalink Chat about it Technorati cosmos Tagsurf It


Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.