3 回答

TA貢獻1786條經(jīng)驗 獲得超13個贊
PUT
用于創(chuàng)建/替換您指定的 URI 處的資源。
因此,如果一個資源存在,它有一個客戶端知道的 URI,并且通過請求PUT
替換那里的內容,這PUT
是最有意義的。
PUT
相對于 POST的一大好處是PUT
冪等性。
PUT
因此,如果您向端點發(fā)送請求/myTable
,則隱含的含義是您正在替換 ,并且同一端點上的myTable
后續(xù)請求將為您提供與剛剛發(fā)送的內容在語義上相似的響應。GET
如果我的上述任何假設是錯誤的,您很可能會想要POST
,這更像是一種通用的包羅萬象的方法,可以在較少的限制下進行更改。POST
缺點是,我認為在不檢查/理解主體的情況下,給定請求的操作不太明顯,并且您也會失去冪等性的好處。

TA貢獻1788條經(jīng)驗 獲得超4個贊
目前我使用 POST 但我不知道這是否合適。
規(guī)則#1:如果您不確定,可以使用 POST。
POST 在 HTTP 中具有許多有用的用途,包括“此操作不值得標準化”的一般用途。
看來使用 PUT 也可以正常工作。
從某種意義上說,任何方法在源服務器上“都能正常工作”。HTTP 定義了請求語義——消息的含義。它不限制實施。
然而,通用客戶端會假設您的服務器理解 GET/HEAD/POST/PUT 等,就像其他 Web 服務器理解它們一樣。這是 REST 架構風格的強大功能的重要組成部分 - 任何符合標準的客戶端都可以與任何符合標準的服務器進行通信,并且它可以正常工作。此外,如果我們在它們之間插入任何符合標準的緩存/代理,它會繼續(xù)以完全相同的方式工作。
但是,如果您使用204 No Content響應PUT請求,那么通用組件將理解這與任何其他服務器返回的含義相同。也就是說,如果你偏離標準而導致財產(chǎn)損失,你的服務員要承擔責任。

TA貢獻1772條經(jīng)驗 獲得超8個贊
您可以在這里查看答案以供參考。它們得到了很好的解釋。?REST 中的 PUT 與 POST
但由于兩者可以達到相同的目的,并且僅取決于您的偏好或要求,因此我通常使用 post 來創(chuàng)建資源并更新資源作為一種實踐。
添加回答
舉報