Jeff的隨手筆記

學習當一個前端工程師

0%

『新手日記』Day-19 HTTP request

『新手日記』Day-19 HTTP request

https://miro.medium.com/max/1280/1*FWo4FgVFK2o9EyrPyIaxBQ.jpeg

疑~既然都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就是對同一件事情做不同的操作

https://miro.medium.com/max/1384/1*-11QF9ytiajrYC0RJxu7Tg.png

在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

https://miro.medium.com/max/1400/1*kK5BLD3jYOSkGylLJtiXZA.png

只要用指定的方式發出請求 (request),將餐廳地址成功發送給 Google Map API,Google Map 就會回應 (response) 地圖資訊:

https://miro.medium.com/max/1396/1*Bi0Mej9LoOjS5SkZwAW02g.png

RESTful

REST,全名 Representational State Transfer( 表現層狀態轉移),他是一種軟體架構的設計風格,不是一種標準或是規格,只有提供原則概念。

符合 REST 的設計風格的軟體架構就可以稱做是 RESTful,符合此規範設計的 API,稱為 RESTful API。

以剛剛 API 影片中的餐廳服務生為例,如果使用一般的 API 點菜,我要加點查看已點菜色修改已點菜色取消已點菜色,都需要不同的服務生替我服務,RESTful API,就是讓這些動作,都可以由同一位服務生完成。

RESTful API 主要由三種元件組成:

https://miro.medium.com/max/426/0*6jID-64m9PfN8yJI.png

  1. Nouns 名詞:定義資源位置的 URL,每個資源在網路上都會有唯一的位置,就如每戶人家都有唯一的地址一樣。
  2. Verbs 動詞:對資源要做的動作。
  3. Content Types 資源呈現方式:API 資源可以以多種方式表現,最常用的是 JSON,較輕,也較好處理。

一般的 API,可能會是這樣:

1
2
3
獲得資料GET    /getData
新增資料POST /createData
刪除資料DELETE /deleteData/1

在引用各家 API 時,都需要詳讀 API 文件,理解所有設計命名規則後,才可使用。

若以 RESTful API 風格開發的話:

1
2
3
獲得資料GET     /data
新增資料POST /data
刪除資料DELETE /data/1

就是用一個唯一的 URL 定位資源,將動作藏在 HTTP 的 method 裡面。

簡單介紹了一下,大概還有80%還沒搞懂吧><”程式語言真的是一個坑越讀越大洞永遠補不滿,難怪常會聽到學不動這個詞。