首頁 > web前端 > js教程 > API 與中間件:了解差異

API 與中間件:了解差異

DDD
發布: 2025-01-14 08:09:44
原創
630 人瀏覽過

在進行後端開發時,你一定會遇到兩個名詞:API中間件

雖然兩者在應用程式架構中都發揮關鍵作用,但它們的用途卻截然不同。

讓我們將他們分解,比較他們的角色,並以一種不會讓你想翻桌子的方式澄清他們的差異。

什麼是 API?

API 代表應用程式介面。它本質上是一個允許不同軟體元件相互溝通的合約。

將其視為餐廳的服務員:它接受您的訂單(請求),將其送到廚房(服務器),然後帶回您的食物(回應)。

API 的主要特徵

  • 公開端點以與資料或服務互動。
  • 透過 HTTP/HTTPS 運作(對於 Web API 最常見)。
  • 可以遵循 REST、GraphQL 或 gRPC 等協定。

現實世界的類比

每次訂購 Uber 或發布推文時,您都在使用 API。應用程式的後端為前端提供API來獲取或發送資料。

  • 程式碼範例 Express.js 應用程式中的簡單 API 端點可能如下所示:
  const express = require('express');
  const app = express();

  app.get('/users', (req, res) => {
    res.json([
      { id: 1, name: 'John Doe' },
      { id: 2, name: 'Jane Smith' },
    ]);
  });

  app.listen(3000, () => {
    console.log('Server running on port 3000');
  });
登入後複製
  • API 定義您的應用程式向外界公開的什麼功能。

API vs Middleware: Understanding the Difference

什麼是中間件?

中間件更像是廚房的幕後工作人員——它不是直接為你服務,但它保證一切順利進行。

用技術術語來說,中間件是位於應用程式管道中的請求和回應之間的一個函數或一組函數。

中介軟體的主要特徵

  • 在請求到達最終處理程序(例如 API)之前對其進行處理。
  • 可以修改請求或回應。
  • 通常用於身份驗證、日誌記錄、驗證或錯誤處理等任務。

現實世界的類比

將中間件視為建築物內的保全。

它確保只有授權個人(有效請求)才能到達辦公室(API)。

  • 程式碼範例 下面是 Express.js 中的簡單日誌中間件範例:
  const express = require('express');
  const app = express();

  const loggingMiddleware = (req, res, next) => {
    console.log(`Request made to: ${req.url}`);
    next(); // Pass control to the next middleware or handler
  };

  app.use(loggingMiddleware);

  app.get('/users', (req, res) => {
    res.json([
      { id: 1, name: 'John Doe' },
      { id: 2, name: 'Jane Smith' },
    ]);
  });

  app.listen(3000, () => {
    console.log('Server running on port 3000');
  });
登入後複製
  • 中間件處理請求在到達端點之前如何處理

API vs Middleware: Understanding the Difference

API 和中間件之間的主要區別

Aspect API Middleware
Purpose Defines endpoints for interaction. Processes requests/responses.
Visibility Exposed to external systems. Works internally within the app.
Examples /users, /products, /login Authentication, logging, error handling
Interaction Invoked by external clients. Invoked automatically in the request pipeline.
Code Placement Found in controllers. Found in the middleware functions.

何時使用 API 與中介軟體

  • API

    • 當您想為外部應用程式或服務提供與您的系統互動的方式時,請使用 API。
    • 範例:行動應用程式透過 /users/:id 取得使用者詳細資訊。
  • 中介軟體

    • 使用中間件來實作適用於多個路由或 API 的橫切關注點。
    • 範例:驗證所有受保護路由的 JWT 令牌,在瀏覽器中設定 cookie。

API vs Middleware: Understanding the Difference

將其整合在一起

想像一下建立一個共乘應用程式。 API 可能包括:

  • /drivers:取得可用的驅動程式。
  • /trips:預訂或管理行程。

在幕後,中間件確保:

  • 只有經過身份驗證的使用者才能存取/trips。
  • 每個請求都會保留日誌。
  • 實施速率限制是為了防止濫用。

API 和中間件對於建立強大的應用程式都是不可或缺的 - 一個公開功能,另一個確保其順利、安全地工作。

說到 API,

我一直在開發一個名為 LiveAPI 的超級方便的工具。

它旨在讓開發人員輕鬆編寫 API 文件。

API vs Middleware: Understanding the Difference

使用LiveAPI,您可以快速產生互動式API文檔,允許使用者直接從瀏覽器執行API。

API vs Middleware: Understanding the Difference

如果您厭倦了手動建立文件或不想花時間為 API 整合 swagger,這個工具可能會讓您的生活更輕鬆,現在就嘗試 LiveAPI!

以上是API 與中間件:了解差異的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板