當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。
下圖是一個「待辦事項清單 (To-do List)」的路由設計示意圖:
在 Web 開發中,我們通常會採用一種名為 REST(Representational State Transfer,可譯為「表現層狀態轉換」)的架構風格來設計路由。
REST 是一種軟體架構的設計風格,而不是一種標準或規格。它提供了一些原則和概念,幫助我們在設計軟體架構時能有一個明確的方向。就像我們在寫程式時,每個人都有自己的風格一樣,設計軟體架構也有許多不同的設計風格。符合 REST 原則的軟體架構,我們通常會稱之為 RESTful。
在設計路由時,我們會根據 REST 的原則來操作。例如,我們可能會為每種資源設計一個獨立的路由,並使用 HTTP 的動詞(如 GET、POST、PUT、DELETE 等)來表示對資源的不同操作。這樣,當客戶端發送請求時,伺服器就可以根據請求的 URL 和 HTTP 動詞來決定應該如何回應。
總之,路由設計的主要目的是讓伺服器能夠根據客戶端的請求來提供正確的回應和資源,而 REST 提供了一種有效的方法來達成這個目的。
RESTful 的設計以「資源」為中心,再搭配 HTTP method 的動詞,以及 CRUD 等資料操作:
http://example.com/resources
。POST
,GET
,PUT
或 DELETE
。JSON
,HTML
,XML
,YAML
等。把 app.js
打開,其中有一段是:
// setting the route and corresponding response
app.get('/', (req, res) => {
res.send('This is my first Express Web App')
})
app.get('/')
是用來設定路由的。其中第一個參數,要放的就是路由,也是我們預期的網址。第二個參數放的則是一個函式,告訴它要回應的內容: