cd aws-lambda-express-demo
  1. aws-lambda-express-demo 文件夾中創建一個文件 app.js
   touch app.js

依賴庫

  1. 使用 npm 從注冊表下載最新版本的 express 包,并將其存儲在項目根目錄的 node_modules 文件夾中。所有的包依賴項也將安裝并存儲在該文件夾中: npm install express
  2. 接下來,安裝名為 serverless-http 的中間件框架,這是一個用于創建無服務器應用程序的庫。AWS Lambda 允許正常編寫應用程序,然后將其包裝在通過 HTTP 請求導出和執行的函數周圍。serverless-http 也與 Azure、Google Cloud 等無服務器提供商兼容: npm install serverless-http
    如果需要,可以通過以下命令全局安裝 serverless-httpnpm install -g serverless-http

以下是使用 Node.js 實現 GETPOSTDELETEPUT 方法的 Express.js 框架實現的 RESTful API 示例:

const express = require('express');
const app = express();
const serverless = require('serverless-http');
const users = [
    { id: 1, name: 'John', company: "ABC Company" },
    { id: 2, name: 'Frank', company: "XYZ Inc." },
    { id: 3, name: 'Ashley', company: "123 Company" },
];

app.use(express.json());

app.get('/users', (req, res) => {
    res.json(users);
});

app.get('/users/:id', (req, res) => {
    const user = users.find(user => user.id === parseInt(req.params.id));
    if (!user) return res.status(404).json({ message: 'User not found' });
    res.json(user);
});

app.post('/users', (req, res) => {
    const user = {
        id: users.length + 1,
        name: req.body.name,
        company: req.body.company,
    };
    users.push(user);
    res.json(user);
});

app.delete('/users/:id', (req, res) => {
    const userIndex = users.findIndex(user => user.id === parseInt(req.params.id));
    if (userIndex === -1) return res.status(404).json({ message: 'User not found' });
    users.splice(userIndex, 1);
    res.json({ message: 'User deleted' });
});

app.put('/users/:id', (req, res) => {
    let user = users.find(user => user.id === parseInt(req.params.id));
    if (!user) return res.status(404).json({ message: 'User not found' });
    user.name = req.body.name;
    user.company = req.body.company;
    res.json(user);
});

const handler = serverless(app);

const startServer = async () => {
    app.listen(3000, () => {
        console.log("listening on port 3000!");
    });
};

startServer();

module.exports.handler = (event, context, callback) => {
    const response = handler(event, context, callback);
    return response;
};

上述代碼創建了一個 Express.js 應用程序,并為 GETPOSTDELETEPUT 方法添加了路由。應用程序使用內存中的 users 數組來存儲數據,并使用 findfindIndex 方法根據 URL 中提供的 ID 檢索和更新用戶。需要注意的是,對于 POSTPUT 路由,需要解析請求正文,這可以通過 express.json() 中間件來完成。

在代碼的末尾,startServer 函數啟動了本地服務器,而 module.exports.handler 函數將 Lambda 事件處理程序與 Express 應用程序連接起來。

運行和測試代碼

通過運行以下命令來啟動服務器:

node app.js

服務器啟動后,API 將開始運行。可以使用 Postman 發送測試 HTTP 請求。向 localhost:3000/users 發送請求時,應該會看到 200 OK 狀態代碼。此測試不需要請求正文。

原文鏈接:Building a RESTful API With AWS Lambda and Express

上一篇:

利用 API 網關和開放策略代理 (OPA) 實現 RBAC 管理

下一篇:

gRPC 與 REST:API 開發方法的對比分析
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

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

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

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

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

#AI深度推理大模型API

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

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