【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。
vocus|新世代的創作平台

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

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

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


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

vocus|新世代的創作平台

模板引擎可將資料與 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>
<% } %>
vocus|新世代的創作平台

這種方式由後端控制資料流與 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
跨越國界的程式人生
6會員
42內容數
自學程式,現為網頁開發工程師,同時擔任線上課程講師,專注於幫助自學程式的開發者找到理想工作。熱愛技術與分享,致力於將複雜的概念轉化為實用知識,讓更多人踏入軟體開發的世界。
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
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
※ 視圖模板 視圖模板(View Templates) 是在 MVC 架構中負責展示數據的 HTML 文件,包含模板語法,用於在渲染時插入實際數據。它們的主要目的是分離數據與展示邏輯,讓代碼更加模塊化和易於維護。 視圖模板設計和使用的核心理念,就是「重複的事情不要重複做、效益最大化、有效利用資源
Thumbnail
※ 視圖模板 視圖模板(View Templates) 是在 MVC 架構中負責展示數據的 HTML 文件,包含模板語法,用於在渲染時插入實際數據。它們的主要目的是分離數據與展示邏輯,讓代碼更加模塊化和易於維護。 視圖模板設計和使用的核心理念,就是「重複的事情不要重複做、效益最大化、有效利用資源
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
透過零售業的數位轉型,消費者期待獲得更多元的服務體驗。API 技術在電商、庫存管理和訂單處理等方面發揮關鍵作用,幫助企業提升效率並擴大營運範圍。API 管理平台為企業帶來高彈性、安全的 API 策略,加速數位轉型,提高企業韌性。昕力資訊的 API 管理平台為企業提供強力支持,助力產業進步。
Thumbnail
透過零售業的數位轉型,消費者期待獲得更多元的服務體驗。API 技術在電商、庫存管理和訂單處理等方面發揮關鍵作用,幫助企業提升效率並擴大營運範圍。API 管理平台為企業帶來高彈性、安全的 API 策略,加速數位轉型,提高企業韌性。昕力資訊的 API 管理平台為企業提供強力支持,助力產業進步。
Thumbnail
當我剛開始接觸這個領域的時候,經常會看到有人在討論: 到底要做前端還是後端工程師呢?後端工程師賺的比前端工程師多?前端工程師轉後端工程師?那前端與後端到底是什麼呢? 這篇文章提供了前端與後端的基本概念並舉例來說明。同時也介紹了前端的三大要素以及後端的運作原理,對於想深入瞭解前後端的讀者會非常有幫助。
Thumbnail
當我剛開始接觸這個領域的時候,經常會看到有人在討論: 到底要做前端還是後端工程師呢?後端工程師賺的比前端工程師多?前端工程師轉後端工程師?那前端與後端到底是什麼呢? 這篇文章提供了前端與後端的基本概念並舉例來說明。同時也介紹了前端的三大要素以及後端的運作原理,對於想深入瞭解前後端的讀者會非常有幫助。
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News