3853Re: [rest-discuss] Jot, RNA and ReST vs MoST
- Aug 5, 2003Yes, the echo/atom API work is in fact what
started me thinking about MoST. My point is that
we should not need an Atom API and a RSS API and a
Wiki API and a RNA/Notification API and a Foo API.
If servers exposed the underlying data model in a
consistent syntactic format, e.g. XML then the
only API you would need is the API for
manipulating that syntactic model. The meaning of
changes to the model would be defined entirely by
the XML schema.
So, if you change from Atom to Pie to RSS.91 to
RSS2 to RNA to ...., the API shouldn't change.
Its always be GET/PUT/POST/DELETE against XML node
ids and you know that this is the API because the
content-type is text/XML!
My objection to ReST is precisely that:
1. there is no way to know the API a URI exposes
without out-of-band communication
2. GET/PUT/POST/DELETE have no consistent
*meaning* accross URI so API documentation ends up
You have 13 pages of documentation simply to
update an XML document with a well defined schema.
You are clearly a smart person. You should find it
frustrating to be spending your time writing such
a document and your should find it even more
frustrating to think about the number of
programmers who have to spend time reading and
understanding that document for your time
investment to pay-off.
If we just agreed that having content-type:
text/xml implied the GET/PUT/POST/DELETE semantics
against node ids that I described, it would save
everyone a lot of time and would fulfill the
simplicity promise that people have been looking
to ReST to deliver.
S. Alexander Jacobson i2x Media
1-212-787-1914 voice 1-603-288-1280 fax
On Tue, 5 Aug 2003, Joe Gregorio wrote:
> Alex Jacobson wrote:
> > If we had a standard mapping between HTTP methods and underlying
> > content-types, everything would get MUCH simpler. The most useful mapping
> > would be from HTTP to XML and would probably look something like this:
> > GET /myRSSblog returns an XML document.
> > POST /myRSSblog#channelId adds a new child to the XML node with that id.
> > GET /myRSSblog#itemId returns an XML node with that id
> > PUT /myRSSblog#itemId replaces the XML node with that id
> > DELETE /myRSSblog#itemId deletes the XML node with that id
> > (Style using <?xml-stylesheet type="text/xsl" href="yourstyle.xsl"?> for
> > your viewing pleasure.)
> Have you looked at the AtomAPI, which is part of this effort?
>  http://bitworking.org/news/AtomAPI_URIs
>  http://bitworking.org/rfc/draft-gregorio-06.html
>  http://www.intertwingly.net/wiki/pie/FrontPage
- << Previous post in topic