鍵.png)
使用NestJS和Prisma構(gòu)建REST API:身份驗(yàn)證
REST(Representational State Transfer,表述性狀態(tài)轉(zhuǎn)移)是一種用于構(gòu)建Web服務(wù)的架構(gòu)風(fēng)格。REST API通過URL表示資源(例如用戶或產(chǎn)品),并為每個(gè)資源定義一組操作(如創(chuàng)建、更新或刪除資源)。
REST API的一個(gè)關(guān)鍵特點(diǎn)是無狀態(tài)性,這意味著服務(wù)器不會(huì)在請(qǐng)求之間存儲(chǔ)任何關(guān)于客戶端的信息。每個(gè)客戶端請(qǐng)求都需要包含完成該請(qǐng)求所需的所有信息。
REST API通常使用以下HTTP方法來操作資源:
例如,向用戶資源的URL發(fā)送GET請(qǐng)求可以檢索用戶信息,而發(fā)送POST請(qǐng)求則可以創(chuàng)建新用戶。
為了在JavaScript中創(chuàng)建REST API,我們可以使用Node.js及其流行的框架Express。Node.js提供了內(nèi)置的Web服務(wù)器功能,而Express則簡(jiǎn)化了HTTP請(qǐng)求和響應(yīng)的處理。
rest-api
的目錄。npminit-y
npminstallexpress
index.js
的文件,用于編寫代碼。以下是一個(gè)使用Express創(chuàng)建簡(jiǎn)單REST API的示例:
const express = require('express');
const app = express();
app.use(express.json());
let users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
// 獲取用戶列表
app.get('/users', (req, res) => {
res.json(users);
});
// 添加新用戶
app.post('/users', (req, res) => {
const newUser = { id: users.length + 1, name: req.body.name };
users.push(newUser);
res.status(201).json(newUser);
});
// 啟動(dòng)服務(wù)器
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
在上述代碼中,我們定義了一個(gè)用戶資源,并為其實(shí)現(xiàn)了兩個(gè)操作:獲取用戶列表(GET)和添加新用戶(POST)。通過調(diào)用app.listen
方法,我們啟動(dòng)了服務(wù)器。
我們可以進(jìn)一步擴(kuò)展API,支持更新和刪除用戶資源。以下是更新后的代碼示例:
// 更新用戶
app.put('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const userIndex = users.findIndex(user => user.id === userId);
if (userIndex !== -1) {
users[userIndex].name = req.body.name;
res.json(users[userIndex]);
} else {
res.status(404).send('User not found');
}
});
// 刪除用戶
app.delete('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const userIndex = users.findIndex(user => user.id === userId);
if (userIndex !== -1) {
users.splice(userIndex, 1);
res.status(204).send();
} else {
res.status(404).send('User not found');
}
});
在上述代碼中:
要測(cè)試API,請(qǐng)按照以下步驟操作:
nodeindex.js
http://localhost:3000/users
,查看用戶列表。curl
或Postman等工具測(cè)試其他API端點(diǎn)。例如:創(chuàng)建新用戶:
curl -X POST -H "Content-Type: application/json" -d '{"name": "John"}' http://localhost:3000/users
更新用戶:
curl -X PUT -H "Content-Type: application/json" -d '{"name": "David"}' http://localhost:3000/users/3
刪除用戶:
curl -X DELETE http://localhost:3000/users/3
REST API是一種強(qiáng)大且靈活的Web服務(wù)構(gòu)建方式。通過Node.js和Express框架,我們可以快速創(chuàng)建可擴(kuò)展、易維護(hù)的REST API。在實(shí)際開發(fā)中,您還可以結(jié)合數(shù)據(jù)庫(kù)(如MongoDB)來存儲(chǔ)和管理數(shù)據(jù),從而構(gòu)建更復(fù)雜的應(yīng)用程序。
如果您對(duì)如何使用MongoDB創(chuàng)建REST API感興趣,請(qǐng)留言告訴我們!
原文鏈接: https://javascripttoday.com/blog/build-a-rest-api-in-javascript/
使用NestJS和Prisma構(gòu)建REST API:身份驗(yàn)證
如何使用 DeepSeek 構(gòu)建 AI Agent:終極指南
模型壓縮四劍客:量化、剪枝、蒸餾、二值化
Yahoo Finance API – 完整指南
WordPress REST API 內(nèi)容注入漏洞分析
Transformers Generate 功能介紹
四款A(yù)I大模型API價(jià)格對(duì)比:DeepSeek R1、ChatGPT o3-mini、Grok3、通義千問 Max
四款A(yù)I大模型API基礎(chǔ)參數(shù)、核心性能的區(qū)別:DeepSeek R1、ChatGPT o3-mini、Grok3、通義千問 Max
2025年多模態(tài)大模型API基礎(chǔ)參數(shù)、核心性能:Deepseek、ChatGPT、文心一言
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)