更新於 2024/07/13閱讀時間約 4 分鐘

後端框架與API 開發(四) – 路由設定與管理

    ※ 什麼是路由?

    當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。

    1. 路由器 (Router):這是一種實體設備,負責將資料封包 (Packet) 從一個網路傳送到另一個網路。它的工作方式類似於交通指揮,確保資料封包能夠按照最佳路徑傳輸。
    2. 路由 (Routing):這是一個過程,路由器在這個過程中為每個資料封包選擇最佳的傳輸路徑。這個選擇路徑的過程就被稱為「路由」。
    3. 路徑 (Route):這是路由器為資料封包選擇的實際傳輸路徑。每個資料封包都會按照這個路徑從源頭傳送到目的地。

    簡單來說,路由就像是一個指路人。當資料(像是一個旅行者)需要從網路的一個地方傳送到另一個地方時,路由器(指路人)會告訴資料應該走哪條路(路徑)。這個過程就像是你打電話給客服,語音總機告訴你應該按哪個號碼來找到你需要的服務。希望這個解釋能讓你更容易理解!

    ※ Server 端建立路由的主要用意:

    在 Web 開發中,「建立路由」是一種方式,讓伺服器能夠根據客戶端的請求(例如 URL 和 HTTP 方法)來提供正確的回應和資源。這個過程涉及到在伺服器端設定一組規則,這些規則就像是一個地圖,指導伺服器如何根據客戶端的請求來找到並提供正確的資源。這就是「建立路由」的主要目的和功能。

    下圖是一個「待辦事項清單 (To-do List)」的路由設計示意圖:

    ※ 路由的使用情境描述:

    1. 資源類別:根據客戶端請求的是靜態資源(如 HTML、CSS、JavaScript 檔案)還是動態資源(如從資料庫獲取的資料),路由可以提供不同的回應。
    2. 資料的存取狀態:路由也可以根據 CRUD(創建、讀取、更新、刪除)操作來回應客戶端的請求。例如,客戶端可能會發送 POST 請求來創建資料,或者發送 GET 請求來讀取資料。
    3. 請求類型:根據客戶端的請求是同步還是非同步,路由也可能需要提供不同的回應。例如,對於 AJAX 的非同步請求,伺服器可能需要回傳 JSON 格式的資料。

    ※ 如何設計路由?

    在 Web 開發中,我們通常會採用一種名為 REST(Representational State Transfer,可譯為「表現層狀態轉換」)的架構風格來設計路由。

    REST 是一種軟體架構的設計風格,而不是一種標準或規格。它提供了一些原則和概念,幫助我們在設計軟體架構時能有一個明確的方向。就像我們在寫程式時,每個人都有自己的風格一樣,設計軟體架構也有許多不同的設計風格。符合 REST 原則的軟體架構,我們通常會稱之為 RESTful。

    在設計路由時,我們會根據 REST 的原則來操作。例如,我們可能會為每種資源設計一個獨立的路由,並使用 HTTP 的動詞(如 GET、POST、PUT、DELETE 等)來表示對資源的不同操作。這樣,當客戶端發送請求時,伺服器就可以根據請求的 URL 和 HTTP 動詞來決定應該如何回應。

    總之,路由設計的主要目的是讓伺服器能夠根據客戶端的請求來提供正確的回應和資源,而 REST 提供了一種有效的方法來達成這個目的。

    RESTful 的設計以「資源」為中心,再搭配 HTTP method 的動詞,以及 CRUD 等資料操作:

    ※ RESTful API 特點:

    1. URI (統一資源識別碼):這是一種標識網路上資源的方式,例如 http://example.com/resources
    2. 對資源的操作:這是通過 HTTP 的請求方法來實現的,例如 POSTGETPUT 或 DELETE
    3. 傳輸的資源:這是 Web 服務的網際網路媒體類型,例如 JSONHTMLXMLYAML 等。

    ※ Express 中設定路由的方式:

    把 app.js 打開,其中有一段是:

    // setting the route and corresponding response
    app.get('/', (req, res) => {
    res.send('This is my first Express Web App')
    })

    app.get('/') 是用來設定路由的。其中第一個參數,要放的就是路由,也是我們預期的網址。第二個參數放的則是一個函式,告訴它要回應的內容:


    分享至
    成為作者繼續創作的動力吧!
    從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

    作者的相關文章

    奧莉薇走在成為後端工程師之路上 的其他內容

    你可能也想看

    發表回應

    成為會員 後即可發表留言
    © 2024 vocus All rights reserved.