許多剛接觸後端開發的新手在設計 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 請求。
延伸閱讀
Using HTTP Methods for RESTful Services
如果你也是對專案開發有興趣的同學,或是正在跟著我們的系列教學,歡迎你加入我們 Chief Noob 的 Discord 菜雞開發社群,一起討論和互相學習:
如果你喜歡我的文章,希望你可以給我一個 Clap 以及留言,這是對我持續創作的一個重要動力!