這邊要記錄的是 HTTP 常用的 Method 分別是 GET, POST, PATCH, DELETE,四種常用指令的意思,並不會有程式碼,並且將會配合上課使用的 API 教材(以下稱為書籍系統),操作一個書籍新增、刪除以及修改的 Method 對照,並且由另一篇文章HTTP API 串接紀錄完整的 API 串接過程,所以這邊就單獨說一下四種 Methods,並且比較 PATCH 以及 PUT 之間的差異。
GET
顧名思義我想要拿到什麼東西,也就是讀取資料,常需要給定的參數就是 id,也可以透過給定條件的方式來進行資料的查詢,例如說:?_limit=數字
代表讀取出幾筆資料;?_q=關鍵字
對資料進行關鍵字查詢。
對應到書籍系統的話 GET 就是用來讀取所有書籍資訊,以及讀取特定書籍資訊。
POST
POST 就是提交資料,所以給定的參數自然包含了要提交的所有內容,例如 id, name 之類的。
對應書籍系統 POST 就是新增書籍,然而並不是 POST 在每種情境就是新增,我認為解釋成提交更符合 POST 在做的事情,而新增是提交的一種。
PATCH
雖然它跟 PUT 是好兄弟,但是因為我目前只有用到它,所以就先記錄起來,後面也會講到 PATCH 和 PUT 兩兄弟之間的差異。 PATCH 就是更新部分資料,為什麼說部分呢?其實就是我在參數的地方傳入我想要更新的東西,他就會把我這些東西更新,而我沒有說要更新的部分就不會有所更動,所以 PATCH 傳入的參數當然就是我要更改的內容啦!
對應到書籍系統 PATCH 就是更新,可以更新書籍的名稱、租借人之類的。
DELETE
DELETE 是我覺得最不需要解釋的,就是刪除資料,在刪除資料的時候,也要告訴系統要刪的是哪一筆資料,通常是告訴系統 id,但是會根據每個資料集的不同,而有所差異。
這個不管對應到哪一種系統應該都會是刪除的意思,應該說提出刪除的需求,能不能新增刪除修改是系統決定的事情。
PATCH 及 PUT 之間的差異
好的,剛才有提到 PATCH 是更新部分資料,也就是更新我想更新的部分,而 PUT 就是他的老大更新資料,讓我用書籍系統來舉例,假設書籍系統裡面記錄每筆資料的:
- 編號
- 書名
- 作者
- 租借人
- 租借日期
以上是每一筆資料都會有的五個資訊,如果我今天只想要更改這筆資料的租借人跟租借日期,那麼我就是使用 PATCH 就好,如此一來編號、書名及作者都不會受到更改。如果我這個時候使用 PUT 相當於這五個資訊都會被重新更新一次。
所以要說哪一個好用,其實就是看自己的狀況以及所需要的更新方式,來挑選做適合當下情況的。