當我們進入 REST API 開發領域時,Node.js 和 Express 脫穎而出,成為開發簡單 REST API 端點的主要框架。從設置 server.js 文件作為起點,到確保 Node.js 服務器針對可訪問的 API 端點主動運行,構建 REST API 的過程是一項引人入勝的工作。

此過程的初始階段涉及建立適當的環境。這個初始設置類似于為建筑物奠定基礎,為構建我們的 API 提供穩定的基礎。

第1步:搭建開發環境

此過程的初始階段涉及建立適當的環境。這個初始設置類似于為建筑物奠定基礎,為構建我們的 API 提供穩定的基礎。在深入編碼方面之前,有必要準備好您的開發環境。以下是幫助您入門的分步指南:

安裝 Node.js 和 npm

確保您的系統上安裝了 Node.js 和 npm(節點包管理器)。 Node.js 作為運行時環境,而 npm 是包管理器,允許您安裝各種庫,包括 Express。

創建一個新項目

打開終端或命令提示符,導航到要在其中創建項目的文件夾,然后運行:

mkdir my-rest-api
cd my-rest-api

初始化您的項目

初始化 Node.js 項目要創建包含有關項目及其依賴項的元數據的package.json文件,請運行:

npm init -y

此命令創建一個具有默認值的package.json文件。

 安裝快捷版

在項目目錄中,通過運行以下命令使用 npm 安裝 Express:

npm install express

此命令將 Express 添加到項目的依賴項中,允許您開始構建 REST API。

第 2 步:使用 Express 創建簡單服務器

環境搭建完畢,讓我們使用 Express 創建一個簡單的服務器。這涉及在傳統上名為server.js文件中編寫少量代碼,以啟動服務器并偵聽請求。

創建server.js

在您的項目目錄中,創建一個名為server.js的文件。

 編寫服務器代碼

在文本編輯器中打開server.js并添加以下代碼:

// Import express
const express = require('express');

// Create an instance of express
const app = express();

// Define a port number
const port = 3000;

// Define a route for GET requests to '/'
app.get('/', (req, res) => {
res.send('Hello World! This is my first REST API.');
});

// Start the server
app.listen(port, () => {
console.log(Server running on http://localhost:${port}); });

此代碼片段執行以下操作:

 運行你的服務器

要啟動服務器,請返回終端并運行:

node server.js

您應該看到一條消息,表明服務器正在運行。打開 Web 瀏覽器并導航到http://localhost:3000 。您將收到以下消息:“Hello World!這是我的第一個 REST API。”

很好,您剛剛設置了開發環境并使用 Express 創建了一個簡單的服務器來為您的第一個 REST API 端點提供服務!這構成了您可以構建更復雜的 API、根據需要添加更多路由和功能的基礎。

定義端點和 HTTP 方法

現在基礎工作已經奠定,我們可以開始建設過程了。在 REST API 開發中,構建從定義端點和 HTTP 方法開始,包括處理 HTTP 請求。要構建 REST API,必須了解標準 HTTP 方法 – GET、PUT、POST 和 DELETE – 因為這些是我們用來定義 CRUD(創建、讀取、更新、刪除)操作(包括處理刪除)端點的工具請求。這些方法與清晰直觀的端點相結合,提供了一個結構化的界面,客戶可以使用該界面直觀地管理信息。

創建 REST API 不僅僅涉及設置服務器;還涉及到其他內容。它需要定義特定的路徑(端點)以及它們如何響應不同的 HTTP 請求。這對于執行 CRUD 操作至關重要。讓我們深入研究如何使用 GET、POST、PUT 和 DELETE 等 HTTP 方法定義這些操作,并建立結構化的請求和響應系統。

GET 請求 – 讀取數據

 檢索所有項目

假設我們要檢索項目列表。我們使用 GET 請求來讀取數據。

   app.get('/items', (req, res) => {
// Assuming 'items' is our data array
res.json(items); // Send all items as response
});

POST 請求 – 創建數據

 添加新項目

要創建新項目,我們使用 POST 請求。這涉及從客戶端向服務器發送數據(在請求正文中)。

// Middleware to parse request body
app.use(express.json());

app.post('/items', (req, res) => {
const newItem = req.body; // Data sent from the client
items.push(newItem); // Add item to our data array
res.status(201).send('Item added.');
});

PUT 請求 – 更新數據

 更新現有項目

更新數據可以通過 PUT 請求來完成,并在端點中指定項目的 ID。

app.put('/items/:id', (req, res) => {
const id = req.params.id; // Get the item ID from the URL
const updatedItem = req.body; // Data for updating the item

// Logic to find and update the item by ID
const index = items.findIndex(item => item.id === id);
if (index !== -1) {
items[index] = updatedItem;
res.send('Item updated.');
} else {
res.status(404).send('Item not found.');
}
});

DELETE 請求 – 刪除數據

 刪除項目

為了刪除項目,使用 DELETE 請求,同時指定項目的 ID。

app.delete('/items/:id', (req, res) => {
const id = req.params.id; // Get the item ID from the URL

// Logic to find and remove the item by ID
const index = items.findIndex(item => item.id === id);
if (index !== -1) {
items.splice(index, 1);
res.send('Item deleted.');
} else {
res.status(404).send('Item not found.');
}
});

通過定義端點并適當處理 HTTP 方法,我們為強大的 REST API 奠定了基礎,該 API 允許客戶端直觀地執行 CRUD 操作。這種設置不僅使我們的 API 更加結構化,還確保它可以無縫處理復雜的數據操作和交互。

構造請求正文和響應負載

在 REST API 中,來自客戶端的請求和來自服務器的響應通常都使用 JSON(JavaScript 對象表示法)作為正文結構。這種格式易于人類閱讀和編寫,也易于機器解析和生成。

使用 JSON 可確保數據發送和接收方式的一致性,使 API 使用起來更加直觀。此外,在響應中設置適當的狀態代碼(例如 200 表示成功,201 表示已創建,404 表示未找到)有助于客戶端了解其請求的結果。

通過避免不必要的數據并謹慎地利用嵌套數據結構可以防止處理延遲和潛在錯誤。這需要仔細考慮每個 API 調用所需的數據,確保請求或響應中發送的每個 JSON 對象僅包含該特定交互所需的數據。避免過于復雜或深層嵌套的結構有助于保持清晰度并有助于提高 API 的處理速度。

為請求和響應數據建立架構非常重要。該模式充當定義 API 交換中數據元素的格式、類型和約束的契約。利用模式不僅有助于驗證數據,還可以作為預期數據模型的文檔,這對 API 開發人員和消費者都非常有益。

除了結構之外,請求正文和響應負載中處理數據的方式也會顯著影響 API 的性能和可用性。例如,響應負載中的分頁可以通過將大型數據集分解為更小、更易于管理的塊來幫助管理它們。這提高了客戶端消費和處理數據的能力,以及網絡上數據傳輸的效率。

總體而言,請求正文和響應負載的周到結構是 RESTful API 設計的一個關鍵方面,有助于創建健壯、可擴展且用戶友好的 API。

設計直觀且可擴展的 REST API

與任何設計過程非常相似,API 設計的目標是開發不僅可操作、而且直觀且能夠擴展的東西。例如,水平擴展是比垂直擴展更好的方法,可以維護可擴展和高性能的 API。

在 HTTP 和 API 請求處理管道中合并緩存層有助于維持 API 性能。

RESTful API 中的數據處理

Data Handling in RESTful APIs

數據是 API 的核心,其高效管理對于 RESTful API 的成功至關重要。 JSON(JavaScript 對象表示法)是與 RESTful API 交互時常用的標準化數據格式之一。

數據建模對于識別數據結構及其相互關系至關重要,JSON 與數據建模一起支持 RESTful API 中的高效操作。

確定資源表示

在 REST API 領域內,資源的表示至關重要。使用復數名詞來表示 REST API 端點中的資源,使 API 對于與之交互的人來說更加直觀。這些端點或 URL 代表 Web 服務中的資源,允許對這些資源執行創建、讀取、更新和刪除等操作。

通過精心構建數據、定義清晰的資源表示以及管理數據傳輸格式,開發人員為強大的 Web 服務奠定了基礎。這個過程需要關注細節并深入了解 Web 標準,但回報(可擴展、高效且用戶友好的 API)非常值得付出努力。

管理數據傳輸和格式

管理數據傳輸和選擇正確的數據格式與確定資源表示同樣重要。例如,Last-Modified 標頭用于內容協商,以指示相關資源上次更改的時間,這對于數據傳輸管理至關重要。

強大的錯誤處理策略

可靠的 API 開發的基礎在于強大的錯誤管理。實施正確的 HTTP 狀態代碼和詳細的錯誤消息可以幫助工程師快速識別問題。此外,將所有異常映射到錯誤負載中,描述錯誤的根源并提供有關如何解決錯誤的指導,從而在意外情況下提供更清晰的反饋。

保護您的 RESTful API

安全性對于每一項數字化事業(包括 API 開發)都至關重要。實施 OAuth 2.0 等身份驗證和授權協議對于 RESTful API 的安全至關重要。 SSL/TLS 加密和細粒度訪問控制等其他安全措施補充了 API 密鑰的使用,以保護敏感信息。

通過緩存技術提高性能

為了提高 API 性能,緩存是一個有影響力的工具。使用 Redis 和 apicache 等數據緩存解決方案可以改善整體體驗,更快地提供經常請求的資源,并減少數據庫查詢。

Cache-Control 標頭用于管理緩存響應的持續時間和位置,包括使用前的驗證。

REST API 的測試工具和實踐

如果沒有完整的測試過程,API 開發就是不完整的。 Rspec、API Fortress 和 Postman 等自動化測試框架可以增強測試過程,從而實現結構化、可擴展、可重用和可維護的測試。

在測試 REST API 之前,了解 API 要求(包括查詢參數的使用)對于正確的測試數據和驗證方法準備至關重要。

記錄您的 API 以實現最大可用性

文檔是消費者與 API 的初始交互點,可幫助開發人員有效地使用 API。清晰完整的 API 文檔對于理解功能、端點、請求/響應格式、身份驗證、速率限制和錯誤處理至關重要。文檔中包含實用的代碼示例可以增強開發人員對如何實現 API 的理解。

優化第三方應用程序的 REST API

第三方應用程序 API 的優化重點是促進輕松集成和更新。 API 版本控制對于允許服務提供商在不中斷現有客戶端的情況下引入更改至關重要。優化 API 架構的模塊化有助于管理復雜性并隔離問題,從而促進多余服務的集成。

 概括

從理解 REST 架構的核心原則到制作、測試和優化 REST API 的復雜性,我們已經開始了 RESTful API 世界的全面之旅。隨著數字化轉型繼續塑造我們的世界,本博文中分享的知識和技能將使您能夠為這一發展做出貢獻。

原文鏈接:https://www.moesif.com/blog/technical/api-development/Blueprint-to-Create-RESTful-APIs/

上一篇:

通過API集成簡化工作流程:優勢與最佳實踐

下一篇:

掌握REST API進行測試:質量保證的基本方法和工具
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

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

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

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

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

#AI深度推理大模型API

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

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