Yuanlin Lin

Blog

API 的請求方法:GET 或 POST ?

Yuanlin Lin 林沅霖

2020-09-03

許多剛接觸後端開發的新手在設計 API 時常常不知道如何選擇一個 Endpoint 應該要用 GET 、 POST 或是其他 Method,這邊將以比較白話的方式簡單說明如何選擇 Endpoint 的請求方式。

GET Request

顧名思義, GET 請求是前端用來請求資料用的,所以如果一個 Endpoint 是被設計來讓前端獲取資料的,他很可能就應該被歸類在 GET 請求!

同時,因為這類請求是用來獲取資料的,所以對他的請求通常不會對資料庫保存的資料造成任何影響,所以也可以透過一個 API 是否對資料庫的資料造成了改變來決定適不適合使用 GET 請求。

也因為 GET 請求單純只是用來獲取資料的,所以他不應該在請求中攜帶資料;換句話說,他的 Request Body 必須是空的。

如果請求的時候想要帶有一些選項,用來補充說明這次請求想要的資料(例如第幾頁的資料、只查詢所有男生會員 … )這些值應該用 參數 Params 的方式或是 動態路由 Dynamic Routing 的方式傳入。

範例:帶參數的 GET 請求 https://example.com/over/there?name=ferret

範例:使用動態路由的 GET 請求 https://en.wikipedia.org/wiki/Dynamic_routing

POST Request

顧名思義, POST 請求是用來向後端發送 (post) 資料用的,這筆資料可能會在經過一些運算以後,被存入資料庫或是改變資料庫的資料。

所以如果今天設計的這個 Request 他需要用 Request Body 帶一些資料讓後端處理,進而改變資料庫存放的資 料,那他很可能應該歸類在 POST 請求。

延伸閱讀

HTTP 請求方法

Using HTTP Methods for RESTful Services

如果你也是對專案開發有興趣的同學,或是正在跟著我們的系列教學,歡迎你加入我們 Chief Noob 的 Discord 菜雞開發社群,一起討論和互相學習:

Chief Noob - Discord Server

如果你喜歡我的文章,希望你可以給我一個 Clap 以及留言,這是對我持續創作的一個重要動力!

author-avatar

關於作者

Yuanlin Lin 林沅霖

台灣桃園人,目前就讀浙江大學,主修計算機科學與技術,同時兼職外包全端開發工程師,熱愛產品設計與軟體開發。

閱讀更多

回部落格首頁