REST API 的主要特性

REST API 基于六個基本原則構建,以下是這些原則的詳細介紹:

  1. 統一接口:通過為客戶端和服務器提供標準化的通信方法,這一原則簡化了架構設計。只要接口保持一致,客戶端和服務器即可獨立發展。
  2. 客戶端-服務器分離:這種分離增強了用戶界面在多個平臺之間的可移植性,同時通過簡化服務器組件提升了可擴展性。客戶端和服務器的獨立性使得一方的更改不會直接影響另一方。
  3. 無狀態:每個客戶端請求必須包含處理請求所需的所有信息,服務器不存儲關于客戶端會話的任何狀態。這種無狀態設計簡化了系統架構并提高了可靠性。
  4. 可緩存:允許響應可緩存,從而減少客戶端重復獲取相同數據的需求,顯著提升性能。恰當的緩存管理確保客戶端能獲取最新信息,同時減輕服務器負擔。
  5. 分層系統:該原則通過限制每層組件的行為,允許系統由多個層級組成。客戶端與各層交互,但不需要了解是否是終端服務器或中介層,這增加了系統的靈活性和可擴展性。
  6. 按需代碼(可選):這一約束允許服務器通過發送可執行代碼(如 JavaScript)來擴展客戶端功能,雖然這一特性較少見,但它通過卸載部分功能到服務器降低了客戶端的復雜性。

REST API 方法

REST API 使用標準的 HTTP 方法,因此大多數開發人員已經熟悉這些動詞。每種方法有其特定的功能:

  1. GET:從指定的資源請求數據,只進行數據檢索,不進行其他操作。
  2. POST:將數據發送到服務器進行創建,通常用于上傳文件或提交表單。
  3. PUT:更新目標資源的所有當前表示,使用上傳的內容進行替換。
  4. DELETE:刪除指定的資源。
  5. HEAD:與 GET 方法類似,但只傳輸狀態行和頭部信息。
  6. PATCH:對資源進行部分修改。

這些方法與數據庫管理中的 CRUD 操作(創建、讀取、更新、刪除)相對應,理解這些方法對于設計 RESTful API 至關重要。

使用 REST API 的優點

REST API 以其簡單性和靈活性而聞名,它利用標準的 HTTP 方法,易于理解和使用。這種通用的 Web 通信方式使得平臺間具備高度的兼容性。REST API 的一大優勢是其可擴展性,得益于無狀態設計,無需服務器維護會話狀態,簡化了服務器架構。REST API 還具有較高的性能和效率,因為可以緩存響應,減少數據傳輸量。此外,REST 技術被廣泛采用,借助龐大的社區和工具支持,REST API 在分布式系統和微服務開發中具有極好的可移植性和易于集成性。

使用 REST API 時的挑戰

盡管 REST API 具有諸多優點,但也面臨一些挑戰。其無狀態特性可能導致請求體積較大,因為每個請求都必須包含所有必要的數據。此外,可能會出現數據過度獲取或獲取不足的問題,這會影響性能,可能需要多個請求來獲取完整數據,或返回過多不必要的數據。安全性也是一個潛在挑戰,需要正確實施身份驗證和數據傳輸的安全措施以保護數據。版本控制也是一大難題,修改可能會破壞向后兼容性。隨著 REST API 的橫向擴展,在高負載情況下,HTTP/HTTPS 的開銷可能會導致性能瓶頸。最后,由于缺乏嚴格的標準,不同 REST API 之間可能存在不一致性的問題。

如何構建 REST API

回顧了 REST API 的所有基礎知識及相關內容后,接下來將構建一個 REST API。以下示例展示了如何使用 NodeJS 和 Express 實現一個簡單的 REST API。當前端點未執行任何實際的 CRUD 操作,但可基于此代碼添加相關功能。首先設置環境,然后構建端點。

第 1 步:設置環境

安裝 Node.js
確保已安裝 Node.js。可從 nodejs.org 下載。

初始化項目
創建項目目錄。在命令行中導航到該目錄并運行 npm init 以創建 package.json 文件。

第 2 步:安裝 Express

由于 API 項目將使用 Express,需通過 npm 安裝。在項目目錄中運行 npm install express。安裝完成后,Express 即可使用。

第 3 步:創建服務器 (server.js)

開始實現實際的 API 代碼。首先,設置應用程序的基本基礎設施。創建一個名為 server.js 的文件并添加以下代碼:

const express = require('express');
const app = express();
app.use(express.json()); // 解析 JSON 請求體的中間件

app.listen(3000, () => console.log('Server running on port 3000'));

上述代碼完成了以下操作:

運行該應用程序后,服務器將啟動,但尚未提供供用戶使用的 API 端點。接下來,將實現用戶可利用的端點。

第 4 步:實施 RESTful 端點

創建 API 時,擁有多個端點以實現各種任務是合理的。需使用之前介紹的 CRUD API 的 HTTP 方法(如 GET、POST、PUT、DELETE),每種方法對應不同的 CRUD 操作。以下是每種類型端點的示例,可在 Express 項目中的 app.use() 語句之后添加并執行此代碼。

獲取端點

實現從服務器獲取數據的 GET 端點。以下代碼展示了此類端點的基本結構:

app.get('/api/items', (req, res) => {
res.send('List of items');
});

app.get(...) 語句中,定義了 GET 路由。當向 /api/items 發出 GET 請求時,將執行回調函數。上述示例使用 res.send() 返回一個字符串。在功能更強大的端點中,可能會訪問數據庫等資源并返回數據。

發布端點

實現 POST 端點,該端點包含向服務器添加新數據的邏輯。以下代碼展示了此類端點的結構:

app.post('/api/items', (req, res) => {
const newItem = req.body; // 請求體中發送的數據
res.send(Item added: ${newItem.name}); });

在上述代碼中,app.post(...) 函數處理 POST 請求。req.body 包含請求中發送的數據,并在響應中返回。在功能更強大的端點中,可能會在此處執行將數據寫入數據庫的邏輯。創建新記錄后,可發送一個布爾值,例如 created: true,或新創建實體的 ID。

更新端點

創建用于更新現有數據的 PUT 端點。以下代碼展示了 PUT 端點的基本結構:

app.put('/api/items/:id', (req, res) => {
const itemId = req.params.id; // 訪問 URL 參數
res.send(Item with ID ${itemId} updated); });

在上述代碼中,app.put(...) 處理 PUT 請求。要更新的資源的 ID 通常作為查詢參數或 URI 參數傳遞。通過 req.params.id 獲取 ID 參數。在實際實現中,通常使用請求正文中的數據進行數據庫調用以更新資源,然后返回一個布爾值,說明更新是否已處理。

刪除端點

展示從服務器刪除數據的 DELETE 端點的示例。以下代碼展示了 DELETE 端點在 Express 中的基本示例:

app.delete('/api/items/:id', (req, res) => {
const itemId = req.params.id;
res.send(Item with ID ${itemId} deleted); });

如上所示,app.delete(...) 方法處理 DELETE 請求。與 PUT 一樣,使用 req.params.id 確定要刪除的項目。與其他端點類似,可能會向數據庫發出請求,以刪除指定資源。

第 5 步:測試 API

構建 API 后,下一步是在本地系統上啟動并運行,并使用 Postman 進行測試。以下是部署和測試端點的各個步驟,從啟動 Node.js 服務器開始。

設置并運行 API
確保 Node.js 服務器正在運行才能訪問 API 端點。通常,通過在終端(指向項目根目錄)中執行 node server.js 命令來啟動并運行服務器。

配置 Postman
下載并安裝 Postman(或 Insomnia)以向端點發出請求進行測試。首先,安裝 Postman。如果尚未安裝,請從官方網站下載。安裝后,創建一個請求:打開 Postman,點擊“新建”,然后點擊“請求”,并將其保存到新的或現有的集合中。

測試 API 端點
使用所選的適當方法(如 GET、POST、PUT 或 DELETE)向每個端點發出請求。以下是每種方法類型的具體信息:

分析響應
測試每個端點時,檢查 Postman 中每個請求的響應是否正確。成功的操作通常會返回狀態代碼,如 200(正常)或 201(已創建)。如出現錯誤,使用響應詳細信息和服務器控制臺日志進行調試。如果端點正在更改數據庫中的資源,還需檢查是否發生了正確的操作。

添加 API 分析和貨幣化

構建 API 只是一個開始。創建 API 端點后,除了使用 API 測試工具之外,還需要監控和分析傳入流量。這有助于識別潛在問題和安全缺陷,并了解 API 的使用情況,這些都是 API 發展的關鍵方面。

隨著 API 平臺的發展,可能會開始專注于創建 API 產品。通過專注于 API 產品,API 從簡單的構建轉變為業務工具和收入來源。與更正式的產品類似,API 產品需要管理并可能被貨幣化。通過 API 增加收入是擴大業務利潤的有效途徑。

結論

至此,介紹了構建 REST API 的基礎知識。本篇文章中,使用 Node.js 和 Express 構建了一些可擴展的簡單端點。總體而言,提供的代碼為應用程序構建 API 提供了良好的起點。

構建 API 后,可能希望開始分析 API 的使用情況并從中獲利。在這些情況下,合適的工具可以幫助實現 API 分析和貨幣化,支持更好的 API 開發與管理。

原文鏈接:Rest API Tutorial – A Complete Beginner’s Guide

上一篇:

探索 Flink SQL Gateway REST API

下一篇:

使用 TypeScript、PostgreSQL 和 Prisma 構建后端:持續集成與部署
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費