[uf-rest] REST opacity and URL schemes.
Dr. Ernie Prabhakar
drernie at opendarwin.org
Sat Apr 22 21:15:10 PDT 2006
Hi David,
On Apr 22, 2006, at 8:59 PM, David Heinemeier Hansson wrote:
> # PUT /books/4 --> { :controller => "books", :action =>
> "update", :id => 4 }
>>> # POST /books/4 --> { :controller => "books", :action =>
>>> "update", :id => 4 }
>>
>> If I understand Rails correctly, you are usually submitting key-
>> value pairs of a modified record, which is NOT identical to the
>> _actual_ row of the table. Thus, "POST" would actually be the
>> correct semantics for what you are trying to accomplish.
>
> Most forms, in this context, give you the entire record and you
> then use that to update the record. So it's
>
> @book.attributes = params[:book]
>
> When params[:book] will usually keep all of the attributes. At
> least all of the attributes that's intended for the user to see/edit.
Well, that's what doesn't quite seem right to me:
* If "/books/4" represents the "record", the PUT would need to
contain _everything_ about that record; synthesizing additional
fields (like last modified) seems like 'cheating', and inconsistent
with PUT semantics
* If "/books/4" represents the page, the PUT would need to contain
the HTML that GET would return
But, as it happens, we're only updating a set of attributes, which
isn't necessarily identical to either the entire record or the entire
page. Therefore, since we're just sending a list of parameters which
"somehow" get turned into a record, "POST" is actually more appropriate.
At least, that's what I've always been told. CC-ing Sam in case he
can clear things up for us...
-- Ernie P.
> --
> David Heinemeier Hansson
> http://www.37signals.com -- Basecamp, Backpack, Writeboard, Tada
> http://www.rubyonrails.com -- Web-application framework
> http://www.loudthinking.com -- Broadcasting Brain
>
>
> _______________________________________________
> microformats-rest mailing list
> microformats-rest at microformats.org
> http://microformats.org/mailman/listinfo/microformats-rest
More information about the microformats-rest
mailing list