On Thu, Jan 31, 2013 at 10:44 AM, John Burwell <jburw...@basho.com> wrote:
> 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).
>

I hear you and if we'll do it, we'll do it the right way this time.

Regards.

> 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