Tuesday, July 01, 2003

Proposal for post creation request

Misha has put up a proposal on the new API wiki for how a post request might work. Feedback welcomed there.

[originally posted by Ev]

Blogger API Update

Here is an update for developers interested in writing tools that integrate with Blogger.

First, a little background: As you may know, the original Blogger API was put up almost two years ago, with the disclaimer that it was in an "experimental" and "alpha" state with no guarantees about its future. It was designed hastily by myself in a couple days, and we had very little resources to do much with it at the time.

Despite these drawbacks, people built cool stuff and other blogging tool vendors supported the Blogger API for compatibility.

It is now (past due) time to do a major revamp of our API. In fact, we've been working on the next version for quite a while. We posted a preliminary spec to our developers list late last year and got a lot of feedback. But we were not that confident in the direction and still didn't really have the extra cycles necessary to put into to it—until recently.

As the first post to this blog (which also inaugurated this new developer's section of blogger.com) indicates, we became very interested in a new proposal that has recently been in the works by a bunch of smart engineer-types of the blogging world. We felt, if it worked out, this new spec (code-named "Atom"), would solve a lot of potential problems with our API, as well as with the blog syndication format we support, RSS. It would do so in an elegant way, specifically designed for blogging. And, even better, a way that was unified with other major blogging tool vendors.

Consequently, our developers got involved with the Atom project to make sure we felt it would work for our needs, as well as everyone else's. We are very pleased with the technical progress made so far and are committed to help the project reach conclusion.

What this means for Blogger developers:
  1. We will continue to support the Blogger API 1.0. (Technically, we are supporting it for the first time—as in, taking off the disclaimers and making sure it is up and running more reliably.) In fact, we have written a new implementation of it, along with the new, more robust, Blogger codebase. However, that spec is frozen and will not be developed further.

  2. We will not be implementing or supporting the Blogger API 2.0. We apologize for having that out there in a semi-final looking spec for so long. We know it was frustrating for developers. But please forget that ever happened.

  3. We are moving away from XML-RPC. If you choose to take advantage of the capabilities of the new API, you will need to use SOAP instead of XML-RPC. This was a difficult decision (made collectively by the designers of Atom), because there is a lot of investment in XML-RPC in the blogging tool space, and it is great for getting things done quickly. But we felt the technical advantages offered by SOAP were worth the effort. (See SixApart link below for details.)

  4. The syndication format and API format will be unified. This is one of the nice aspects of Atom that could not have been easily accomplished without starting from scratch. It generally simplifies getting data into and out of blogging apps.

  5. Interoperability. This is a biggie. At least two other major blogging tool and service companies (SixApart and Live Journal) have pledged their support for this new initiative, and we're working with them (as well as others) to define the spec up-front. This means your tools will be usable by as many people as possible, with minimal effort. And since the API/format will be vendor-neutral, no one's needs can be more important than users and developers.

In general, our goal is to make it as painless as possible to develop neat stuff that plugs into Blogger, and we feel we are very close to having the best direction for that to happen. The technical folks in the blogging world have learned a lot of the past few years about RSS and the blogging APIs—about what works well and what doesn't. And, despite the efforts that have gone into certain directions, we feel it'd be unfortunate this early in the game to be married to a certain direction just because we started out that way when we didn't know as much.

As mentioned, the project is still in the works, and there is no final spec, but there are lots of smart people working on getting it right. And it's an open process: You can get involved by visiting the wiki, posting to your blogs and mailing lists, etc.

Lastly, I didn't go into much of the technical reasons behind the decisions in the Atom project here. But they have been well-articulated by Ben Trott of SixApart. I encourage checking out that if you're interested.

Thanks for your patience (and contributions) in getting this all worked out.

[originally posted by Ev]