All,

I hate to be the pedantic REST guy, but I think there is a different worth 
noting between PUT and POST.  POST [1] should be used for operations where the 
server will provide the identity of the resource where PUT [2] is intended for 
operations where the client will provide the identity of the resource.  While I 
know it has become common practice to combine these two methods, I think that 
it weakens the API intent and contract.  In the CloudStack model, it seems to 
me that POST operations would create resources (e.g. a new VM definition) where 
the server will return the resource's identity (e.g. a UUID) as part of the 
response.  A PUT operation would mutate an existing resource (e.g. change the 
definition of a VM identified by a particular UUID).

Thanks,
-John

[1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5
[2] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6

On Jan 31, 2013, at 8:28 AM, Prasanna Santhanam <t...@apache.org> wrote:

> On Thu, Jan 31, 2013 at 12:44:36AM +0530, Rohit Yadav wrote:
>> I want to propose that we deprecated the current non-RESTful APIs and
>> api server over next few months, year, 2 years... (let's vote on the
>> timeline, what do you think should be duration for maintaining old set
>> of apis?). And, we work on a maintainable REST-ful api server using
>> JAX-RS (suggest any other technology)?
>> 
>> Issues:
>> https://issues.apache.org/jira/browse/CLOUDSTACK-638
>> https://issues.apache.org/jira/browse/CLOUDSTACK-1093
> 
> +1 
> 
> a) Will both methods query and REST be supported via different
> endpoints while the deprecation is happening?
> 
> b) Is the plan to reuse existing API entities, which surface to a
> query endpoint naturally over a REST endpoint, or do you plan to
> re-write the API entities? 
> 
> For eg: CreateEntity, DeleteEntity, ListEntity over 
> 
> @Http(method=GET)Entity.list(), @Http(method=POST/PUT)Entity.create(), 
> @Http(method=DELETE)Entity.delete()
> 
> c) An alert to downstream projects may be when you start this? -
> jclouds, libcloud etc
> 
> 
> -- 
> Prasanna.,

Reply via email to