- From: Christopher B Ferris <chrisfer@us.ibm.com>
- Date: Fri, 30 May 2003 20:44:25 -0400
- To: www-ws@w3.org
Alan Doyle wrote on 05/30/2003 05:20:23 PM:
>
> My understanding of REST is that anything after the GET that requires
"out of
> band" knowledge about the resource you're sending the GET to reduces
> the visibility.
>
> For example, if I build a stock quote service that takes requests of
> the form
>
> http://my-service.com/quote.cgi?ticker=IBM
>
> it's more opaque than a similar service where the form is
>
> http://my-service.com/quote/IBM
I don't understand why you are suggesting that the former is more opaque
than
the latter.
>
> In order to be properly RESTful, the latter should appear as a link
> in some other document so that it can be reached via a transition
> from a previous representation.
You can us query parameters for this as well. A URI is a URI. It is
just as valid to return a URI of the first form in a document as it is
to return one of the second form.
>
> If you look at some of Paul Prescod's writing about UDDI, for
> example, he describes this quite nicely.
>
> http://webservices.xml.com/pub/a/ws/2002/02/06/rest.html
> http://www.google.com/search?q=prescod+uddi
Hey, look! The second article takes a query parameter and yet is being
used
in an equally RESTful manner as the first link to one of Paul's articles:)
>
> Getting back to the example at hand, it's not the fact that SOAP was
> used to encode the query that made it opaque. It's the fact that the
> query had to be so complex at all.
Oh? Are you suggesting that there is no value in complex queries? Or, are
you
suggesting that SOAP itself is an overcomplication of something that could
easily be quite trivial and simple? For the trivial case such as
getStockQuote,
I might agree, but life is rarely that simple.
I could easily hide an extraordinarily complex query, one that involved
complex
table joins from different databases, transforms and all manner of
gonculation
behind a very simple URI such as:
http://example.org/a/really/complex/query
Of course, that means that the arguments to the query must be fixed
and assigned to the URI, which might be fine if the query were not
something that indeed took different arguments.
I suppose that would be okay if I spent all of my waking hours defining
all possible
permutations of the really complex query and assigning each possible
query a unique URI. Or, I could be really lazy (as I am!) and simply
provide a means of encoding the possible query arguments into the URI.
Whether the URI is created by the origin server or by the client is not
important.
>
> Allan
<snip/>
Cheers,
Christopher Ferris
STSM, Emerging e-business Industry Architecture
email: chrisfer@us.ibm.com
phone: +1 508 234 3624
Received on Friday, 30 May 2003 20:44:38 UTC