2014-07-22 63 views
2

當您使用RESTFUL服務時,您經常會聽到條款GET/POST/PUT/DELETE。我的問題是這麼多動詞背後的想法是什麼?我可以在GET動詞的幫助下實現一切,或者如果我想在郵件正文中發佈一些大型數據,我可以使用POST動詞。我不認爲有必要超越這兩個動詞來思考。HTTP動詞 - 何時使用GET/POST/PUT /刪除

對於何時使用哪個動詞,我們有任何一般指導原則嗎? 使用一個動詞比另一個有什麼優勢?

PS:我知道後面

GET : Get object 
PUT : Modify Object 
DELETE: Delete Object 
POST : Create Object 

回答

3

的想法每個動詞用於不同的目的。雖然可以簡單地解析身體並忽略請求方法,但這是非常糟糕的做法,並且使任何人都難以更好地理解您的Web服務。

Wikipedia總結了請求方法及其預期行爲。

一般:

  • 一個GET應該用於從Web服務 請求信息。

  • A POST應該用於將數據放入網絡服務器,其中 沒有規定Web服務應該放置數據的位置。一個 的例子可能是一個關於StackOverflow的問題。這可能被認爲是插入的等同物。

  • 當您要指定數據的位置時,應使用PUT。 這是一個冪等的行爲,重複它不會改變每次重複呼叫的任何東西 。一個示例可能是對StackOverflow的回覆或評論,因爲它們將鏈接到某個資源,例如對特定問題的回答爲 。或者,這可以被視爲等同於更新。

  • DELETE顯然是用來從網絡服務器刪除一些數據或 資源。

還有其他的請求方法(如維基百科文章中提到的),但這些請求方法涵蓋了人們與Web服務之間的主要交互。