使用 Node.js 和 Express 构建 RESTful API

简介: 【10月更文挑战第3天】 使用 Node.js 和 Express 构建 RESTful API

使用 Node.js 和 Express 构建 RESTful API

Node.js 是一个基于 Chrome V8 JavaScript 引擎的 JavaScript 运行环境,它使开发者可以使用 JavaScript 来编写服务器端的应用程序。Express 是一个基于 Node.js 的轻量级 Web 应用框架,常被认为是构建 API 或 Web 应用的标准库之一。在本文中,我们将使用 Node.js 和 Express 构建一个简单的 RESTful API,用于管理一个书籍列表。

1. 环境准备

首先,确保你的开发环境中已经安装了 Node.js。接下来,我们需要创建一个新的 Node.js 项目。

打开终端或命令提示符,执行以下命令来创建一个新的 Node.js 项目:

mkdir book-api
cd book-api
npm init -y

2. 安装必要的包

我们需要安装 Express 和一些其他的 npm 包来帮助我们构建 API。

npm install express body-parser cors

body-parser 用于解析请求体,cors 用于处理跨域资源共享(CORS)问题。

3. 创建 API

创建一个名为 server.js 的文件,这是我们的主应用程序文件。

server.js 文件内容:
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');

const app = express();
app.use(bodyParser.json());
app.use(cors());

let books = [
  {
    id: 1, title: 'Node.js入门', author: '张三' },
  {
    id: 2, title: 'Express实战', author: '李四' },
];

// 获取所有书籍
app.get('/api/books', (req, res) => {
   
  res.json(books);
});

// 添加书籍
app.post('/api/books', (req, res) => {
   
  const book = req.body;
  book.id = books.length + 1;
  books.push(book);
  res.status(201).json(book);
});

// 删除书籍
app.delete('/api/books/:id', (req, res) => {
   
  const id = parseInt(req.params.id);
  books = books.filter(book => book.id !== id);
  res.status(204).send();
});

// 更新书籍信息
app.put('/api/books/:id', (req, res) => {
   
  const id = parseInt(req.params.id);
  const updatedBook = req.body;
  books = books.map(book => (book.id === id ? {
    ...book, ...updatedBook } : book));
  res.json(books.find(book => book.id === id));
});

// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Server is running on port ${
     PORT}`));

4. 测试 API

现在我们可以启动我们的服务器,并使用 Postman 或其他 HTTP 客户端工具来测试我们的 API。

启动服务器:

node server.js

在浏览器中访问 http://localhost:3000/api/books,你应该可以看到 JSON 格式的书籍列表。

5. 使用 Postman 测试 API

安装并打开 Postman,创建一个新的请求:

  • GET 请求到 http://localhost:3000/api/books,应该返回所有的书籍。
  • POST 请求到 http://localhost:3000/api/books,发送一个 JSON 格式的请求体,例如 { "title": "JavaScript高级程序设计", "author": "高程" },应该返回新添加的书籍。
  • DELETE 请求到 http://localhost:3000/api/books/2,应该返回一个空响应体,表示书籍已被成功删除。
  • PUT 请求到 http://localhost:3000/api/books/1,发送一个 JSON 格式的请求体,例如 { "title": "Node.js实战" },应该返回更新后的书籍。

以上就是一个简单的 RESTful API 的实现。在这个例子中,我们没有使用数据库来持久化数据,而是将数据存储在一个内存数组中。在实际应用中,你可能需要连接到一个数据库,如 MongoDB 或 MySQL,并使用 ORM 或 ODM 如 Sequelize 或 Mongoose 来处理数据持久化。

通过这个例子,你可以了解到如何使用 Node.js 和 Express 来快速构建一个功能完善的 API。希望这篇教程对你有所帮助,如果有任何问题或建议,请随时留言。


相关文章
|
7天前
|
SQL 缓存 测试技术
构建高性能RESTful API:最佳实践与避坑指南###
—— 本文深入探讨了构建高性能RESTful API的关键技术要点,从设计原则、状态码使用、版本控制到安全性考虑,旨在为开发者提供一套全面的最佳实践框架。通过避免常见的设计陷阱,本文将指导你如何优化API性能,提升用户体验,确保系统的稳定性和可扩展性。 ###
39 12
|
3天前
|
JSON JavaScript API
深入浅出Node.js:从零开始构建RESTful API
【10月更文挑战第39天】 在数字化时代的浪潮中,API(应用程序编程接口)已成为连接不同软件应用的桥梁。本文将带领读者从零基础出发,逐步深入Node.js的世界,最终实现一个功能完备的RESTful API。通过实践,我们将探索如何利用Node.js的异步特性和强大的生态系统来构建高效、可扩展的服务。准备好迎接代码和概念的碰撞,一起解锁后端开发的新篇章。
|
6天前
|
存储 API 开发者
深入理解RESTful API设计原则
本文探讨了RESTful API的设计原则,强调了其在现代Web服务中的重要性。通过分析状态表示转移(REST)的概念、核心约束以及最佳实践,本文旨在为开发者提供构建高效、可扩展和易于维护的API的指导。文章还讨论了常见的设计陷阱和如何避免它们,以确保API设计的健壮性和灵活性。
|
7天前
|
JavaScript 前端开发 NoSQL
深入浅出:使用Node.js构建RESTful API
【10月更文挑战第35天】在数字时代的浪潮中,后端技术如同海洋中稳固的灯塔,为前端应用提供数据和逻辑支撑。本文旨在通过浅显易懂的方式,带领读者了解如何利用Node.js这一强大的后端平台,搭建一个高效、可靠的RESTful API。我们将从基础概念入手,逐步深入到代码实践,最终实现一个简单的API示例。这不仅是对技术的探索,也是对知识传递方式的一次创新尝试。让我们一起启航,探索Node.js的奥秘,解锁后端开发的无限可能。
|
JSON API PHP
CI中如何保护RESTful API
步骤5 保护RESTful API   为了保护RESTful API,可以在application/config/rest.php中设置安全保护级别,如下所示: $config['rest_auth'] = 'basic';    其中保护级别有如下设置:   None:任何人都...
940 0
|
4天前
|
JSON API 数据格式
淘宝 / 天猫官方商品 / 订单订单 API 接口丨商品上传接口对接步骤
要对接淘宝/天猫官方商品或订单API,需先注册淘宝开放平台账号,创建应用获取App Key和App Secret。之后,详细阅读API文档,了解接口功能及权限要求,编写认证、构建请求、发送请求和处理响应的代码。最后,在沙箱环境中测试与调试,确保API调用的正确性和稳定性。
|
16天前
|
供应链 数据挖掘 API
电商API接口介绍——sku接口概述
商品SKU(Stock Keeping Unit)接口是电商API接口中的一种,专门用于获取商品的SKU信息。SKU是库存量单位,用于区分同一商品的不同规格、颜色、尺寸等属性。通过商品SKU接口,开发者可以获取商品的SKU列表、SKU属性、库存数量等详细信息。
|
17天前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
|
27天前
|
编解码 监控 API
直播源怎么调用api接口
调用直播源的API接口涉及开通服务、添加域名、获取API密钥、调用API接口、生成推流和拉流地址、配置直播源、开始直播、监控管理及停止直播等步骤。不同云服务平台的具体操作略有差异,但整体流程简单易懂。
|
7天前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释