
什么是 REST API?
創建項目與安裝依賴 :使用 npm 初始化項目,安裝 Express 框架等必要依賴。
npm init -y
npm install express
構建基礎服務器 :引入 Express 模塊,創建應用實例并監聽特定端口。
const express = require('express');
const app = express();
const port = 3000;
app.listen(port, () => {
console.log(Server running at http://localhost:${port}
);
});
定義路由與處理函數 :設定 API 的訪問路徑(路由),并為不同路由指定處理函數,返回相應數據。
app.get('/api/user/:type', (req, res) => {
const userType = req.params.type;
if (userType === 'seoul') {
res.json({ name: 'Kim', city: 'Seoul' });
} else if (userType === 'jeju') {
res.json({ name: 'Lee', city: 'Jeju' });
} else {
res.json({ name: 'Unknown', city: 'Unknown' });
}
});
引入 uuid 模塊生成 API 密鑰 :利用 uuid 庫生成全局唯一的 API 密鑰,作為系統訪問憑證。
npm install uuid
const { v4: uuidv4 } = require('uuid');
const apiKey = uuidv4();
console.log('Generated API Key:', apiKey);
修改路由邏輯,加入 API 密鑰驗證 :在路由處理函數中增加密鑰驗證邏輯,確保只有持有有效密鑰的請求能獲取數據。
app.get('/api/sales/:type/:year', (req, res) => {
const providedApiKey = req.query.api_key;
if (providedApiKey !== apiKey) {
return res.status(403).json({ error: 'Invalid API Key' });
}
const salesType = req.params.type;
const salesYear = req.params.year;
let salesData;
if (salesType === 'semiconductor' && salesYear === '2019') {
salesData = { product: 'Semiconductor', year: '2019', revenue: '2000' };
} else if (salesType === 'semiconductor' && salesYear === '2020') {
salesData = { product: 'Semiconductor', year: '2020', revenue: '1500' };
} else {
salesData = { product: 'Unknown', year: 'Unknown', revenue: '0' };
}
res.json(salesData);
});
通過上述步驟,我們成功利用 Node.js 搭建起一個基礎且安全的 API 服務器。這只是邁向高效系統開發的第一步,隨著項目發展,我們可不斷拓展和優化服務器功能,滿足日益增長的業務需求。
原文引自YouTube視頻:https://www.youtube.com/watch?v=8XpVJaEWesM