【Web API 的演進(一)】從 MVC 到前後端分離:理解模板引擎與協作瓶頸

更新於 發佈於 閱讀時間約 4 分鐘

軟體工程師職涯升級計畫啟動!立即預約職涯諮詢、履歷健檢或模擬面試👈,為您的加薪做好準備!

Web API 是前端與後端溝通的橋樑,因此要理解 API 的演進歷程,必須從「前後端協作模式」的轉變談起。

本文上半部分將從傳統的 MVC 架構談起,介紹模板引擎如何將資料渲染進 HTML、Web API 如何讓前後端分離成為可能,並引出 RESTful API 與 GraphQL 如何改變我們對資源的管理方式。下半部分則會談及常見的 API 認證方式,以及近年興起的 Proxy 技術如何強化 API 安全與效能。


一、前後不分離:MVC 架構與模板引擎

📎 什麼是 MVC?

MVC 是一種經典的軟體架構模式,由三個核心組件構成:

  • Model(模型):負責與資料庫互動,處理商業邏輯與資料運算。
  • View(視圖):負責畫面呈現,將資料渲染成 HTML,供使用者閱讀。
  • Controller(控制器):負責接收請求,調用 Model 拿資料,並將資料傳給 View。
raw-image

MVC 模式強調職責分離,使程式碼更易於維護與測試。以下為典型流程:

sql
複製編輯User Request → Controller → Model → Controller → View → HTML Response

在 MVC 中,View 是與使用者最直接互動的部分,而模板引擎正是產出動態 View 的關鍵。


📎 模板引擎:在伺服器上產出 HTML

raw-image

模板引擎可將資料與 HTML 模板結合,輸出最終要呈現在瀏覽器的 HTML 文件。



📍範例:EJS 模板引擎(Node.js)

EJS 使用與 JavaScript 相近的語法來操作資料與邏輯:

ejs
複製編輯<% if (isShow) { %>
<p>Show me what you get</p>
<% } %>

<h1><%= title %></h1>
  • <% %>:嵌入邏輯控制(如條件判斷、迴圈)
  • <%= %>:插入資料(會輸出值)

EJS 搭配 Node.js 的 Express 框架範例如下:

js
複製編輯// Express Controller
app.get('/', (req, res) => {
res.render('index', { title: '首頁', isShow: true });
});
ejs
複製編輯<!-- index.ejs -->
<h1><%= title %></h1>
<% if (isShow) { %>
<p>歡迎來到首頁!</p>
<% } %>
raw-image

這種方式由後端控制資料流與 HTML 結構,前端主要處理樣式與少量互動功能。


❗前後不分離的限制

儘管 MVC 架構清晰、模板引擎強大,但其「前後不分離」特性,導致以下問題:

  1. 前端需倚賴後端產出畫面:每次更新畫面,都要等待後端傳回整頁 HTML,難以支援即時互動。
  2. 角色分工模糊
    • 前端需理解 Controller 的邏輯與後端語言。
    • 後端工程師需處理樣式與前端互動,不利專業分工。
  3. 部署與開發耦合高:前端需在後端環境中執行與測試,降低開發效率與 CI/CD 的彈性。
  4. 全端工程師壓力大:隨著技術棧複雜化,要精通前後端難度提高,也不利於組織規模化。

✅ 前後端分離的誕生

隨著 SPA(Single Page Application)框架如 React、Vue、Angular 興起,Web 頁面開始在瀏覽器中動態渲染,僅需向後端請求純資料(如 JSON 格式),前後端逐漸走向 分離開發、獨立部署 的模式。

這一轉變促使 Web API(尤其是 RESTful API 與 GraphQL)成為主流。

留言
avatar-img
留言分享你的想法!
avatar-img
跨越國界的程式人生
2會員
33內容數
自學程式,現為網頁開發工程師,同時擔任線上課程講師,專注於幫助自學程式的開發者找到理想工作。熱愛技術與分享,致力於將複雜的概念轉化為實用知識,讓更多人踏入軟體開發的世界。
2025/06/23
這篇文章整理了 JavaScript 中常見的演算法與資料結構題型,包括排列組合、排序、搜尋、樹與鏈結串列等,並提供程式碼範例與說明,方便讀者快速理解與應用。適合準備前端、全端或軟體工程師面試的讀者參考。
Thumbnail
2025/06/23
這篇文章整理了 JavaScript 中常見的演算法與資料結構題型,包括排列組合、排序、搜尋、樹與鏈結串列等,並提供程式碼範例與說明,方便讀者快速理解與應用。適合準備前端、全端或軟體工程師面試的讀者參考。
Thumbnail
2025/06/19
求職過程中的經驗分享,涵蓋多家公司的面試流程、技術問題、薪資待遇以及最終結果。作者分享了準備面試的心得,並建議求職者持續學習、紀錄錯誤、瞭解市場趨勢,提升自身競爭力。
Thumbnail
2025/06/19
求職過程中的經驗分享,涵蓋多家公司的面試流程、技術問題、薪資待遇以及最終結果。作者分享了準備面試的心得,並建議求職者持續學習、紀錄錯誤、瞭解市場趨勢,提升自身競爭力。
Thumbnail
2025/06/19
這篇文章分享作者的面試經驗,提供求職者寶貴的建議,包括投遞策略、如何評估公司和職位,以及如何提升自身競爭力。文章涵蓋多家公司的面試過程細節,並提出將自身能力分配給求職標準的有效方法。
Thumbnail
2025/06/19
這篇文章分享作者的面試經驗,提供求職者寶貴的建議,包括投遞策略、如何評估公司和職位,以及如何提升自身競爭力。文章涵蓋多家公司的面試過程細節,並提出將自身能力分配給求職標準的有效方法。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 視圖模板 視圖模板(View Templates) 是在 MVC 架構中負責展示數據的 HTML 文件,包含模板語法,用於在渲染時插入實際數據。它們的主要目的是分離數據與展示邏輯,讓代碼更加模塊化和易於維護。 視圖模板設計和使用的核心理念,就是「重複的事情不要重複做、效益最大化、有效利用資源
Thumbnail
※ 視圖模板 視圖模板(View Templates) 是在 MVC 架構中負責展示數據的 HTML 文件,包含模板語法,用於在渲染時插入實際數據。它們的主要目的是分離數據與展示邏輯,讓代碼更加模塊化和易於維護。 視圖模板設計和使用的核心理念,就是「重複的事情不要重複做、效益最大化、有效利用資源
Thumbnail
透過零售業的數位轉型,消費者期待獲得更多元的服務體驗。API 技術在電商、庫存管理和訂單處理等方面發揮關鍵作用,幫助企業提升效率並擴大營運範圍。API 管理平台為企業帶來高彈性、安全的 API 策略,加速數位轉型,提高企業韌性。昕力資訊的 API 管理平台為企業提供強力支持,助力產業進步。
Thumbnail
透過零售業的數位轉型,消費者期待獲得更多元的服務體驗。API 技術在電商、庫存管理和訂單處理等方面發揮關鍵作用,幫助企業提升效率並擴大營運範圍。API 管理平台為企業帶來高彈性、安全的 API 策略,加速數位轉型,提高企業韌性。昕力資訊的 API 管理平台為企業提供強力支持,助力產業進步。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
當我剛開始接觸這個領域的時候,經常會看到有人在討論: 到底要做前端還是後端工程師呢?後端工程師賺的比前端工程師多?前端工程師轉後端工程師?那前端與後端到底是什麼呢? 這篇文章提供了前端與後端的基本概念並舉例來說明。同時也介紹了前端的三大要素以及後端的運作原理,對於想深入瞭解前後端的讀者會非常有幫助。
Thumbnail
當我剛開始接觸這個領域的時候,經常會看到有人在討論: 到底要做前端還是後端工程師呢?後端工程師賺的比前端工程師多?前端工程師轉後端工程師?那前端與後端到底是什麼呢? 這篇文章提供了前端與後端的基本概念並舉例來說明。同時也介紹了前端的三大要素以及後端的運作原理,對於想深入瞭解前後端的讀者會非常有幫助。
Thumbnail
前言 現在的前端需求已經越來越高,要考慮HTML及CSS的切版美觀程度,以及React以及Flutter所提出的元件(Componet、widget)觀念,也就是將元件模組化,使元件可以更動態的被程式運行,而不用靜態的客製化每一個介面。開發一個好的元件可以提升整體的開發速度,讓任何使用元件的開發者
Thumbnail
前言 現在的前端需求已經越來越高,要考慮HTML及CSS的切版美觀程度,以及React以及Flutter所提出的元件(Componet、widget)觀念,也就是將元件模組化,使元件可以更動態的被程式運行,而不用靜態的客製化每一個介面。開發一個好的元件可以提升整體的開發速度,讓任何使用元件的開發者
Thumbnail
先前幾篇筆記介紹了網路請求,瀏覽器儲存資料的方式,那麼實務上,前端最常需要發送網路請求的時候,就是透過呼叫 API,去向後端工程師發送/請求資料,所以今天來記錄什麼是 API吧!
Thumbnail
先前幾篇筆記介紹了網路請求,瀏覽器儲存資料的方式,那麼實務上,前端最常需要發送網路請求的時候,就是透過呼叫 API,去向後端工程師發送/請求資料,所以今天來記錄什麼是 API吧!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News