什么是REST API?

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

為了在JavaScript中創(chuàng)建REST API,我們可以使用Node.js及其流行的框架Express。Node.js提供了內(nèi)置的Web服務(wù)器功能,而Express則簡(jiǎn)化了HTTP請(qǐng)求和響應(yīng)的處理。

準(zhǔn)備工作

  1. 創(chuàng)建一個(gè)名為rest-api的目錄。
  2. 在目錄中運(yùn)行以下命令初始化項(xiàng)目:
    npminit-y
  3. 安裝Express框架:
    npminstallexpress
  4. 創(chuàng)建一個(gè)名為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

要測(cè)試API,請(qǐng)按照以下步驟操作:

  1. 啟動(dòng)服務(wù)器:
    nodeindex.js
  2. 在瀏覽器中訪問http://localhost:3000/users,查看用戶列表。
  3. 使用curl或Postman等工具測(cè)試其他API端點(diǎn)。例如:

結(jié)論

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/

上一篇:

使用 Ulfius 在 C 語言中構(gòu)建 RESTful API

下一篇:

使用 Grape 在 Ruby on Rails 中構(gòu)建 RESTful API
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)