+1 for PUT = update and POST = create.

http://www.elharo.com/blog/software-development/web-development/2005/12/08/post-vs-put/

Brandon Smith

On 10/29/06, Dan Diephouse <[EMAIL PROTECTED]> wrote:

Hi James,

James Mao wrote:
> Hi Dan,
>
> Thanks for your explanations, that make sense to me.
> I review the code, and i wondering if  the PUT should use addCustomer,
> and the POST should use updateCustomer?
> One thing i still can not understand is that the difference between
> REST POST and the normal POST? are they same?
>
As far as I understand, POST is for adding, and PUT is for updating.
> In @GET, how you map the uri to the operation name? through the
> annotation? and i guess in @GET method we can only support simple
> type, right?
Yes, through the annotation, and yes it only maps simple types.
> What's the mechanism to map the uri to parameters? it's the name-value
> pair or just value?
>
WSDL 2.0 specifies a mechanism where by we actually synthesize an
incoming document and map the parameter to the it based on the schema. I
blogged a little bit about it here:

http://netzooid.com/blog/2006/10/27/cxf-rest-support/
> I'm thinking of support GET for SOAP1.2, but finally i found that it
> may work for all bindings (SOAP1.1 SOAP1.2 and XML),
> The scenario I'm imaging is that for the normal POST webservice, we
> can use GET to retrieve the result through GET as long as the
> parameters are simple type. sort of RPC style, but should work.
> for example, for the hello_world sayHi/greetMe method, we normally
> write a client code to invoke the service, since now we support GET,
> you don't need to do so, you can even use browser to retrieve the
> result, just use the URI
> http://localhost:9000/SoapContext/SoapPort/sayHi or
> http://localhost:9000/SoapContext/SoapPort/greetMe/requestType/Dan or
> http://localhost:9000/SoapContext/SoapPort/greetMe?requestType=Dan
>
> Thoughts?
Is this how the SOAP 1.2 HTTP GET binding is supposed to work? I took a
quick look at the spec, but it wasn't immediately clear what is supposed
to happen with SOAP over GET.

I don't see the harm in doing such a thing, but you might be able to
just reuse the HTTP-binding module. I'd like to support other ways of
mapping services to HTTP without annotations. One of these ways would be
to map things based on just some simple rules - if the operation name
starts with get its a GET operation, if its a complex type, a POST is
required, etc...

>
> -James
>> Hi James,
>>
>> While it could be called a REST binding, REST is an architectual
>> style, not a specific implementation. When we talk about doing REST
>> style services, usually we're talking about doing HTTP. HTTP is a
>> protocol just like SOAP. We map operations to resources and http
>> headers to parameters.
>>
>> One of the goals is to support the WSDL 2 HTTP binding [1] (which is
>> part of where the name comes from too). While CXF has some basic
>> XML/HTTP support it doesn't support the full range of things needed.
>> For instance, I can't easily map URIs and verbs to operations. With
>> the Java REST annotations which I've been working on, this is fairly
>> trivial:
>>
>> @Get
>> @HttpResource(location="/customers/{id}")
>> public Customer getCustomer(String id) { .. }
>>
>> I can easily map an operation to any URI and also to any verb via
>> @Get/@Post/@Delete/@Put.
>>
>> Does that help answer your questions?
>>
>> - Dan
>>
>> 1. http://www.w3.org/TR/wsdl20-adjuncts/#http-binding
>> 2. http://jra.codehaus.org
>>
>> James Mao wrote:
>>
>>> Hi Dan,
>>>
>>> What's the 'HTTP binding' for? is it just for REST?
>>> If so why call it 'HTTP binding'? can we call it 'REST binding'?
>>> 'HTTP' sounds just like a transport.
>>> The 'HTTP binding' is use HTTP transport, right? so we have 'HTTP
>>> over HTTP'? sounds weird.
>>>
>>> Another question is that current  CXF REST support is  based on
>>> JAX-WS, why we need the 'HTTP binding' to expose the JAX-WS service
>>> again?
>>>
>>> Thanks,
>>> James.
>>>
>>>> Author: dandiep
>>>> Date: Mon Oct 23 11:52:16 2006
>>>> New Revision: 467080
>>>>
>>>> URL: http://svn.apache.org/viewvc?view=rev&rev=467080
>>>> Log:
>>>> Add an "HTTP binding" which uses the Java Rest Annotations (new
>>>> project at the
>>>> Codehaus which James Strachan and I started) to expose JAX-WS
>>>> services as REST style services.
>>>> Thanks to Guillaume Nodet who supplied the IriDecoderHelper class
>>>> which was
>>>> indispensible.
>>>>
>>>> Currently this just includes:
>>>> o simple server side functionality to take JAX-WS operations and
>>>> expose them
>>>>   as resources using the @HttpResource annotation and
>>>> @Get/@Put/@Post/@Delete.
>>>> o Ability to take URI parameters and construct an incoming XML
>>>> document
>>>>   according to WSDL 2 spec
>>>> o Ability to take URI parameters and an incoming XML document and
>>>> merge them
>>>>
>>>> Other things in this commit:
>>>> o Fixed the JAXBDataBinding so we didn't twice initialize the Types
>>>> if the   WSDLServiceBuilder already did it.
>>>> o Added support for recognizing unwrapped operations in
>>>> XMLOutInterceptor
>>>>
>>>>
>>>
>>>
>>
>>
>


--
Dan Diephouse
Envoi Solutions
http://envoisolutions.com
http://netzooid.com/blog


Reply via email to