- From: Mark Baker <distobj@acm.org>
- Date: Tue, 20 Apr 2004 12:40:25 -0400
- To: www-ws-desc@w3.org
- Cc: mnot@mnot.net
On Mon, Apr 19, 2004 at 03:19:20PM -0700, David Orchard wrote:
> I would think the operation from the application perspective is getStockQuote.
Interesting. I've heard recently from the likes of Jim Webber and Savas
Parastatidis[1] that this isn't the case (though I'm not suggesting that
they would say the answer is "GET" either). I heard similarly from
Arthur Ryman last year, that he considered the operationName to be
"documentation"[2]. But whatever the concensus position is, it would
be good if the spec were clear about it (and/or supported multiple
interpretations).
Is concensus documented on this point, even if it's not in the spec? I
don't think we're going to get very far with respect to the binding
issues if this isn't clear. And I don't particularly care which way it
goes, I just need a stake in the ground that I can work with.
> It could be serialized on the wire as HTTP GET with some magic schema1 to URI binding as you suggest, or a POST of some new "QUERY" operation, or a SOAP operation with an input and output. The way you would tell is from the binding.
>
> What I think would be quite useful is to have the getStockQuote also say that getStockQuote has the semantics of GET for use in the binding layer, ie
>
> <wsdl:interface name="StockQuotes">
> <wsdl:operation name="getStockQuote" wsdl:webMethod="GET">
> <wsdl:input element="schema1"/>
> <wsdl:output element="schema2"/>
> </wsdl:operation>
> </wsdl:interface>
Hmm. "getStockQuote has the semantics of GET" is what I want too, but it
seems we mean it in different ways. I want the operation name to be a
label ("documentation", as Arthur says) for a particular class of GET
invocations, while leaving it such that the client/application only
knows that "GET" occurred. This seems similar to Mark Nottingham's
strawman[3], as he states;
The nice thing here is that unlike operation name overloading (e.g.,
name="getFoo"), everything is in extensions; you can still name your
operation 'getStatus' or just plain 'Status' if you want to.
But I'll CC him in the hope that he can veryify/clarify this for us
(I can't recall if he's subscribed).
> I think the binding will have some syntax to bind the name to the GET in some way, ie
>
> <wsdl:interface name="StockQuotes">
> <wsdl:operation name="getStockQuote" wsdl:webMethod="GET">
> <wsdl:input element="schema1"/>
> <wsdl:output element="schema2"/>
> </wsdl:operation>
> <wsdl:operation name="getStockQuoteGoldPayingCustomer" wsdl:webMethod="GET">
> <wsdl:input element="schema1"/>
> <wsdl:output element="schema2"/>
> </wsdl:operation>
> </wsdl:interface>
>
> Now another approach is to model the getStockQuote simply as GET, ie.
Ah, now we're talking. 8-)
> <wsdl:operation wsdl:webMethod="GET">
> <wsdl:input element="schema1"/>
> <wsdl:output element="schema2"/>
> </wsdl:operation>
>
> But then an application can't really identify the operation when there are more than 1, like if the GoldPayingCustomer was added.
Yes, you'd need another service/URI for that in the RESTful case. See
Mark's strawman again.
[1] http://www.sys-con.com/story/?storyid=44354&DE=1
[2] http://lists.w3.org/Archives/Public/www-ws-desc/2003Mar/0065.html
[3] http://www.mnot.net/blog/2004/04/14/rest_in_wsdl
Mark.
--
Mark Baker. Ottawa, Ontario, CANADA. http://www.markbaker.ca
Received on Tuesday, 20 April 2004 12:41:07 UTC