Restful風(fēng)格API中用put還是post做新增操作有什么區(qū)別?創(chuàng)建POST 修改 PUT

第一個(gè)問題,首先我們了解一下什么是冪等性

1、冪等性:
百度百科給的定義是:

在編程中一個(gè)冪等操作的特點(diǎn)是其任意多次執(zhí)行所產(chǎn)生的影響均與一次執(zhí)行的影響相同。
冪等函數(shù),或冪等方法,是指可以使用相同參數(shù)重復(fù)執(zhí)行,并能獲得相同結(jié)果的函數(shù)。這些函數(shù)不會(huì)影響系統(tǒng)狀態(tài),也不用擔(dān)心重復(fù)執(zhí)行會(huì)對(duì)系統(tǒng)造成改變。例如,“setTrue()”函數(shù)就是一個(gè)冪等函數(shù),無論多次執(zhí)行,其結(jié)果都是一樣的更復(fù)雜的操作冪等保證是利用唯一交易號(hào)(流水號(hào))實(shí)現(xiàn)。

2、REST請求中哪些是冪等操作
GET,PUT,DELETE都是冪等操作,而POST不是,下面來分析一下。

GET:請求很好理解,對(duì)資源做查詢多次,此實(shí)現(xiàn)的結(jié)果都是一樣的。
PUT:請求的冪等性可以這樣理解,將A修改為B,它第一次請求值變?yōu)榱薆,再進(jìn)行多次此操作,最終的結(jié)果還是B,與第一次執(zhí)行的結(jié)果是一樣的,所以PUT是冪等操作。
DELETE:DELETE同理,第一次將資源刪除后,后面多次進(jìn)行此刪除請求,最終結(jié)果是一樣的將資源刪除掉了。
POST:不是冪等操作,因?yàn)橐淮握埱筇砑右环菪沦Y源,二次請求則添加了兩份新資源,多次請求會(huì)產(chǎn)生不同的結(jié)果,因此POST不是冪等操作。
3、在使用中,我們可以根據(jù)冪等性區(qū)分POST與PUT的使用
也就是說

如果是更新,并不會(huì)產(chǎn)生新的數(shù)據(jù),新的數(shù)據(jù)會(huì)覆蓋老的數(shù)據(jù),用put
如果是創(chuàng)建,會(huì)產(chǎn)生新的數(shù)據(jù),則用post

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容