window.axios.patch('https://fir-3-test-2332e.firebaseio.com/notes/' + this.$route.params.key + '.json', {
title: title,
label: labels[label],
content: content,
time: now
}).then(res => {
this.is_data_loaded = true;
this.$router.go(-1);
})
https://segmentfault.com/q/1010000005685904
patch方法用來更新局部資源,這句話我們該如何理解?
假設我們有一個UserInfo,里面有userId, userName, userGender等10個字段。可你的編輯功能因為需求,在某個特別的頁面里只能修改userName,這時候的更新怎么做?
人們通常(為徒省事)把一個包含了修改后userName的完整userInfo對象傳給后端,做完整更新。但仔細想想,這種做法感覺有點二,而且真心浪費帶寬(純技術上講,你不關心帶寬那是你土豪)。
於是patch誕生,只傳一個userName到指定資源去,表示該請求是一個局部更新,后端僅更新接收到的字段。
而put雖然也是更新資源,但要求前端提供的一定是一個完整的資源對象,理論上說,如果你用了put,但卻沒有提供完整的UserInfo,那么缺了的那些字段應該被清空
補充:
最后再補充一句,restful只是標准,標准的意思是如果在大家都依此行事的話,溝通成本會很低,開發效率就高。但並非強制(也沒人強制得了),所以你說在你的程序里把方法名從put改成patch沒有任何影響,那是自然,因為你的后端程序並沒有按照標准對兩個方法做不同處理,她的表現自然是一樣的
