簡體   English   中英

asp.net mvc和web api哪個是更好的Http POST或PUT

[英]asp.net mvc and web api which is better Http POST or PUT

我有一個類型為asp.net mvc和web api的應用程序。 我對http post和http put有點困惑。 什么時候使用什么,各有利弊。 我已經瀏覽了很多博客,但沒有充分理由為什么設計。

使用POST ,您必須從頭開始創建全新的記錄。 使用PUT ,您必須更新數據庫中的現有記錄

這是PUT和POST之間的差異

   `POST is Not idempotent`--> 

一次又一次地運行POST操作意味着每次運行時都會創建新實例。

`PUT is Idempotent`--> 

PUT是一次又一次地調用PUT的冪等操作將導致相同的結果。

所以POST不是冪等的,而PUT是冪等的。

`There is also PATCH` -->

當您只需要更新模型的少數屬性時使用補丁。換句話說,部分更新。

簡單地說(沒有雙關語):

POST通常用於創建新對象。

PUT通常用於更新現有對象

使用正確的HTTP謂詞允許您發布更清晰的API,並且無需在端點(url)中編碼意圖。 例如,比較:

使用正確的動詞:

GET    api/user/12345
POST   api/user/12345
PUT    api/user/12345
DELETE api/user/12345

黑客端點:

GET  api/user/12345
POST api/user/12345/create
POST api/user/12345/update
POST api/user/12345/delete

我認為使用PUT等唯一的缺點是並非所有開發人員都熟悉它們,而且某些第三方軟件可能不支持它們,或者至少它可能不像使用更熟悉的動詞如GETPOST那么容易。

例如,幾周前我遇到一個問題,就是在它出現之前將代理放在API前面並且代理不支持HTTP PUT動詞(可能是配置問題 - 但我們沒有有權訪問代理來修復它)所以我們不得不調整API並在最后一刻將其更改為POST (這也意味着我們必須更改正在使用它的客戶端(移動應用程序))。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM