我使用PUT和POST發展彈簧安置網服務PUT和POST - 它們是否依賴於實現?
@RequestMapping(value = "/test", method = RequestMethod.POST)
@Override
public String function(Model model)
{
}
那麼,什麼是在這種情況下使用PUT和POST之間的區別?
我知道PUT是冪等的,這意味着如果多次調用相同的url,效果應該是相同的。 如果我提供的請求方法爲PUT,並且如果我在函數內部包含DB操作,PUT的含義不會改變,這意味着如果我多次調用測試URL,DB值每次都會改變。
我的問題是冪等性,狀態改變,所有這些功能取決於開發人員的實現?
更好的例子:
@RequestMapping(value = "/test", method=RequestMethod.POST, produces={"application/json"})
public @ResponseBody List<Integer> postData(@RequestParam String name) {
if (name.equalsIgnoreCase("okkk")) {
return returnDataList();
}else {
List<Integer> list = new ArrayList<Integer>();
list.add(12345);
return list;
}
}
@RequestMapping(value = "/test/{name}", method=RequestMethod.PUT, produces={"application/json"})
public @ResponseBody List<Integer> putData(@PathVariable String name) {
if (name.equalsIgnoreCase("okkk")) {
return returnDataList();
}else {
List<Integer> list = new ArrayList<Integer>();
list.add(12345);
return list;
}
兩種方法都是一樣的,我相信。我只是把PUT和POST,有點困惑。
「無論PUT被調用多少次,它都應該一次又一次地做同樣的事情.PUT響應不可緩存」意思是說,如果我使用PUT進行數據庫操作,它應該更新一次嗎? – parameswar
你可以用PUT,POST,GET等技術上做你想做的事情。所以如果你想寫PUT來實際返回一個項目列表,你可以這樣做,如果你想。如果你這樣做,但你沒有遵循RESTful實現。 – FooBar
增加了一個例子,你可以檢查嗎? – parameswar