Re: Few questions about REST

On Mon, Sep 15, 2003 at 01:15:35PM -0400, Sergey Beryozkin wrote:
> > > Can we consider doc-lit SOAP as being "mostly RESTful" ?
> >
> > In general, I don't think so.  Resource identification and the uniform
> > interface are absolutely core to REST.  If the interface were "very
> > general", without being strictly "uniform" (e.g. "PROPFIND", or
> > "SEARCH"), but resources were identified, then I would answer "yes".
> 
> For example, the same way as PROPFIND would be used to retrieve a property
> of some identified resource and possibly create it if it's not available,
> setting it to some initial value passed in a request's body ? In other
> words, using PROPFIND would not be trictly "iniform" in that it'd be used
> for not only retrieving a property, the same way as doc-lit SOAP sometimes
> uses POST for retrieving the representation.

No, PROPFIND isn't strictly uniform because it doesn't make sense for all
objects; it only makes sense on properties.

Think of REST's "uniform interface", as the interface that would be
exposed by the root object in a hierarchy, such as java.lang.Object.
You wouldn't put getStockQuote() on it, right?

> > But if we're talking about very specific methods like "getInvoice",
> > then I'd have to answer "No".
> Do you refer to the fact that a doc-lit SOAP, while not passing method
> names, can still be used to "getInvoice" with a message body being empty and
> SOAPAction hinting to a handler that a  getInvoice() should be invoked ?

No, just what I said above.

> I thought you agreed in an earlier message that if a control parameter
> (SOAPAction or application/xml+soap action attribute) is a URI then it's
> semantically equivalent to a case when such a control parameter is passed
> within a resource URI. A resource then could still be identifiable. For
> example, 1 is a (relative) URI to a subordinate resource :
> 
> POST mainResource/1
> 
> and
> 
> POST mainResource
> application/xml+soap; action=1
> 
> seem to be equivalent, especially due to the fact that
> "application/xml+soap" is a registered mime type and it might be easier for
> generic intermediaries to understand that it's  mainResource/1 which is
> identified.
> Do you agree ?

Yes.  When the out-of-band information (e.g. "action=1") is
*identifying* information, then we're in synch.  It's when the out of
band information defines the interface semantics that things go wrong,
because it messes with the contract.  For example, a successful response
now means something different; the success refers to the action, rather
than to the simple submission of data for processing.

> So when you said that "doc-lit SOAP is RESTful" what did you mean by that ?

Did I say that?  It *can* be, but 99.99% of people still put a method
in the body.  By definition, that's unRESTful.

I think I may have said that the RESTful use of SOAP looks like doc/lit,
but where there's no method in the body.  i.e. where the document is just
state.

> I'll try to understand better what you said with respect to late-binding,
> and then I'll ask more questions :-)

Fire away!

Mark.
-- 
Mark Baker.   Ottawa, Ontario, CANADA.        http://www.markbaker.ca

Received on Monday, 15 September 2003 23:03:21 UTC