『新手日記』Day-19 HTTP request
疑~既然都404了那我是不是可以不用打了XDD
進入到後端的世界了,一進來就來一個熟悉又陌生的名詞『路由(route)』。
路由是在網路傳輸裡的一種技術,後來轉移到 web application 的領域。
在網路應用程式開發的領域,路由是指 URL 的處理程序,這組處理程序會把 HTTP 動詞、URL、和相關的程式碼連接起來(不要跟路由器搞錯喔!)。
我們會在路由系統裡,定義「收到什麼 HTTP request,就執行什麼動作」。
HTTP request
老樣子MDN先來:
HTTP defines a set of request methods to indicate the desired action to be performed for a given resource.
當Web service使用Web API進行介面介接時,每一串我們設計的URL,就會是一個專屬的服務『窗口』,不同的Method就是對同一件事情做不同的操作。
在HTTP協定中,定義了多種不同的method做為服務的請求方法,最常見的method 有五種:GET|POST|PUT|PATCH|DELETE。
GET:取得(想要的服務)的資料或是狀態。(safe & idempotent)
POST:將數據發送到指定的端點以創建或更新資源
PUT:用於更新資源
PATCH:用於修改資源
DELETE:刪除由 URI 標識的資源
了解這些後,我們要來運用他們,在使用前我們需要在學習2個名詞API & RESTful
API
API :Application Programming Interface,譯為「應用程式介面」,也就是「應用程式對外開放的介面」。主要用途是讓開發者可以透過 API 去使用其他人撰寫的應用程式。
這邊有一段簡單解釋API的小影片
應該很淺顯易懂吧!就如同上所說API是一種介面,使用者可以透過 API 使用應用程式的功能,但不需要碰觸到程式的內部運作。舉一個現實的例子:Google Map API
只要用指定的方式發出請求 (request),將餐廳地址成功發送給 Google Map API,Google Map 就會回應 (response) 地圖資訊:
RESTful
REST,全名 Representational State Transfer( 表現層狀態轉移),他是一種軟體架構的設計風格,不是一種標準或是規格,只有提供原則概念。
符合 REST 的設計風格的軟體架構就可以稱做是 RESTful,符合此規範設計的 API,稱為 RESTful API。
以剛剛 API 影片中的餐廳服務生為例,如果使用一般的 API 點菜,我要加點、查看已點菜色、修改已點菜色、取消已點菜色,都需要不同的服務生替我服務,RESTful API,就是讓這些動作,都可以由同一位服務生完成。
RESTful API 主要由三種元件組成:
- Nouns 名詞:定義資源位置的 URL,每個資源在網路上都會有唯一的位置,就如每戶人家都有唯一的地址一樣。
- Verbs 動詞:對資源要做的動作。
- Content Types 資源呈現方式:API 資源可以以多種方式表現,最常用的是 JSON,較輕,也較好處理。
一般的 API,可能會是這樣:
1 | 獲得資料GET /getData |
在引用各家 API 時,都需要詳讀 API 文件,理解所有設計命名規則後,才可使用。
若以 RESTful API 風格開發的話:
1 | 獲得資料GET /data |
就是用一個唯一的 URL 定位資源,將動作藏在 HTTP 的 method 裡面。
簡單介紹了一下,大概還有80%還沒搞懂吧><”程式語言真的是一個坑越讀越大洞永遠補不滿,難怪常會聽到學不動這個詞。