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., >