作者Esh ()
看板Ruby
標題[問題] 送出REST的CRUD 但是結果有問題
時間Wed May 27 11:41:07 2009
首先感謝大家之前對小弟之前在REST疑問的排除
現在遇到了一個狀況
就是對規定的URI送出PUT, GET, POST, DELETE
只有GET跟DELETE的結果正確...
(用了幾個REST GUI Client都這樣)
例如有一個doctors的controller
裡面有Uid, Firstname, Lastname, City, 與License五個Fields
小弟我有修改migrate的內容,把timestamp去掉
現在除了上面5個欄位,只有多了會自動產生的ID
先用Scaffold產生的new樣板,網頁輸入一筆資料後
對doctors/1.xml 送出Get Method得到了
<?xml version="1.0" encoding="UTF-8"?>
<doctor>
<city>CA</city>
<firstname>Peter</firstname>
<id type="integer">1</id>
<lastname>Norton</lastname>
<license type="integer">2147483647</license>
<uid>A128080042</uid>
</doctor>
接著我想要修改資料,例如把uid改成 A128080142
於是再對doctors/1.xml 送出PUT
以下是封包內容
<?xml version="1.0" encoding="UTF-8"?>
<doctor>
<city>CA</city>
<firstname>Peter</firstname>
<id type="integer">1</id>
<lastname>Norton</lastname>
<license type="integer">2147483647</license>
<uid>A128080142</uid>
</doctor>
送出之後,得到200 OK的回應
但是再用GET去看這筆資料
得到的還是變動前的UID
另外,要新增一筆資料
對doctors.xml送出POST
一樣編輯上述的xml內容
一樣得到200 ok的回應,也真的多了一筆資料在Database
可是僅有自動生成的ID欄位多了自動加1的數值
該record的其他欄位city, firstname. lastname.....
都是null的
不知道為什麼會發生這樣的狀況?
該如何解決? 我送出的方式有誤嘛?
或者是REST Client的問題 (我用python的RESTClient
http://restclient.org/ )
有請高手解惑了!
謝謝
--
http://blog.leezhenyu.com
Technology, Study, Food, Travel
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.129.162.64
1F:→ godfat:你的 controller 呢?沒寫當然不會動啊.. 05/27 12:55
2F:→ godfat:REST 是概念,不是程式 05/27 12:55
3F:→ Esh:預設的不就有了嘛? 自動產生的 05/27 16:04