文章同步於blog
今天往設計面來做介紹,介紹Http的方法(Method)
這會跟RESTful API設計有關聯
關於RESTful API的介紹,這篇文章講得非常完整
這邊要講的是普遍上會遇到的狀況,該如何設計HTTP Method
非特殊情況可以照著原則做就好,否則容易讓人無法理解
這邊會介紹幾種 Method,分別是
這個絕對是大家最常看到的請求之一,被設計用於取得資料時使用,而status code主要使用200
在Get中有一個很大的特色就是,通常request的內容都會帶在url上,所以在這個狀況下Request的內容都可以被看到
換句話說,某些不想被猜到的敏感資訊,例如:密碼
就應該想辦法讓其他人看不懂,Hash過或是改用Post
這也是大家很常見的請求,基本上也是最萬用的,例如
前者用於更新資源且未帶入的column時用null時使用
後者用於更新部分資源
舉個例子
| id | name | email |
|--------|----------|---------------------|
| 1 | Alice | alice@example.com |
| 2 | Bob | bob@example.com |
| 3 | Carol | carol@example.com |
如果我今天的request body都是這樣
{
"id": 3,
"name": "Jacob"
}
**應該要把user的email在更新一次(即使沒有改變,有的比較狠的還會把它變成null
後者則不變
**
status code多用204表示
另外,與 put 與 post 兩者的區別在於,前者在多次請求的狀況下不會對Server造成負擔,後者大部分會
嗯對,很白話,但真的是這樣
通常回覆200和204,我個人都用204
大致上與Get相同,但是,他不會有任何回傳主體
也就是說,他只回傳Header的部分
通常用於詢問資源是否存在
例如: 檢查是否登入就是一個很好的使用Head的時機
此時我不需要回傳過多的訊息,我只是要確定是否登入
故此時使用Head就是一個不錯的做法,我不需要回傳整個主體出去
對於http method的設計,我通常都會採用下方參考的說明,除非有特例我才會在專案的文件上撰寫
基本上設計上的模式是基於RESTful API也就是透過相同的URL再使用http method來做設計
不過基於RESTful API應該一堆文章我就不再多說明了
總之這篇文章是講述甚麼情況下該用什麼樣的method,明天會介紹status code
HTTP Request Methods
HTTP 請求方法
rfc9110