程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

如何在 JavaScript 中使用 REST API

balukai 2025-02-21 12:06:55 文章精选 7 ℃

掌握客户端和服务端 REST API 实现的关键

最近几年,REST API(表述性状态转移应用程序编程接口)已成为构建网络应用程序的基石。无论你是前端开发者还是后端工程师,都无法绕开与 REST API 的交互。本文将深入探讨如何在 JavaScript 中操作 REST API,涵盖客户端和服务端两方面的实现,并提供实用的代码示例和最佳实践,让你快速上手并掌握这项核心技能。

1. 什么是 REST API?

REST API 是一种允许客户端(如浏览器或移动应用程序)与服务器通信以获取或操作数据的架构风格。它遵循一种无状态的架构,利用标准 HTTP 方法进行交互。

核心概念:

  • 资源: 通过端点表示(例如,/users 用于用户数据)。
  • HTTP 方法:GET: 用于检索数据。POST: 用于创建新资源。PUT: 用于更新现有资源。DELETE: 用于删除资源。
  • 数据格式: JSON(JavaScript Object Notation)是常用的数据交换格式。
  • HTTP 状态码:200 OK: 请求成功。201 Created: 资源创建成功。400 Bad Request: 客户端错误,请求格式不正确或参数缺失。404 Not Found: 请求的资源未找到。500 Internal Server Error: 服务器内部错误。

2. 工具和设置

客户端:

  • 浏览器(使用 JavaScript 的 fetch API 或 axios库)。
  • 可以使用如 https://jsonplaceholder.typicode.com 这样的公共 API 进行练习。

服务端:

  • 安装 Node.js,并使用 Express 框架。

3. 在客户端使用 REST API

JavaScript 提供了 fetch() API 和 axios 等第三方库来与 REST API 交互。

使用fetch()获取数据

以下代码展示了如何从 REST API 获取数据:

// 使用 fetch 获取 API 数据
const fetchUsers = async () => {
  try {
    const response = await fetch('https://jsonplaceholder.typicode.com/users');
    if (!response.ok) {
      throw new Error(`HTTP error! Status: ${response.status}`);
    }
    const users = await response.json(); // 解析 JSON 数据
    console.log(users);
  } catch (error) {
    console.error('获取用户数据时发生错误:', error);
  }
};

fetchUsers();

解释:

  • fetch(url):发起 HTTP 请求。
  • response.json():将响应转换为 JSON 格式。
  • 使用 try...catch 进行错误处理,捕获网络错误或无效响应。

使用POST发送数据

以下代码展示了如何使用 POST 方法创建新的资源:

const createUser = async () => {
  try {
    const response = await fetch('https://jsonplaceholder.typicode.com/users', {
      method: 'POST', // HTTP 方法
      headers: {
        'Content-Type': 'application/json', // 指定 JSON 格式
      },
      body: JSON.stringify({ // 将 JavaScript 对象转换为 JSON 字符串
        name: 'Jane Doe',
        email: 'jane.doe@example.com',
      }),
    });

    const newUser = await response.json(); // 解析 JSON 响应
    console.log(newUser);
  } catch (error) {
    console.error('创建用户时发生错误:', error);
  }
};

createUser();

关键点:

  • method 选项指定 HTTP 方法。
  • headers 选项用于指定内容类型。
  • body 包含 JSON 格式的请求体。

4. 在服务端构建 REST API

在后端,通常使用 Node.js 和 Express 框架来构建 REST API。

设置开发环境

  1. 安装 Node.js:前往 Node.js 官网下载安装。
  2. 初始化新项目:
  3. mkdir rest-api-demo cd rest-api-demo npm init -y npm install express

创建一个简单的 REST API

以下代码展示了一个简单的 REST API 服务:

const express = require('express');
const app = express();
const PORT = 3000;

// 中间件,用于解析 JSON 请求
app.use(express.json());

// 示例数据
let users = [
  { id: 1, name: 'Alice', email: 'alice@example.com' },
  { id: 2, name: 'Bob', email: 'bob@example.com' },
];

// GET 所有用户
app.get('/users', (req, res) => {
  res.json(users);
});

// GET 一个指定 ID 的用户
app.get('/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (user) {
    res.json(user);
  } else {
    res.status(404).json({ message: '用户未找到' });
  }
});

// POST 新增一个用户
app.post('/users', (req, res) => {
  const newUser = { id: users.length + 1, ...req.body };
  users.push(newUser);
  res.status(201).json(newUser);
});

// PUT 更新用户信息
app.put('/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (user) {
    Object.assign(user, req.body); // 更新用户属性
    res.json(user);
  } else {
    res.status(404).json({ message: '用户未找到' });
  }
});

// DELETE 删除用户
app.delete('/users/:id', (req, res) => {
  const userIndex = users.findIndex(u => u.id === parseInt(req.params.id));
  if (userIndex !== -1) {
    users.splice(userIndex, 1); // 从数组中删除用户
    res.status(204).send(); // 无内容响应
  } else {
    res.status(404).json({ message: '用户未找到' });
  }
});

app.listen(PORT, () => {
  console.log(`服务器运行在 http://localhost:${PORT}`);
});

解释:

  • 中间件: app.use(express.json()) 用于解析传入的 JSON 请求。
  • 路由:GET /users:获取所有用户。GET /users/:id:获取特定用户。POST /users:添加新用户。PUT /users/:id:更新用户信息。DELETE /users/:id:删除用户。

5. 测试 REST API

你可以使用 Postman 或 curl 等命令行工具来测试你的 API。

使用 Postman

  1. 安装 Postman。
  2. 创建新请求:GET http://localhost:3000/users:获取所有用户。POST http://localhost:3000/users:添加一个用户,请求体使用 JSON 格式。

使用curl

curl -X GET http://localhost:3000/users
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","email":"john@example.com"}' http://localhost:3000/users

6. REST API 开发的最佳实践

  • 使用有意义的端点名称(例如,/users 而不是 /data)。
  • 验证用户输入,防止无效或有害数据。
  • 遵循一致的 HTTP 状态码。
  • 使用 Swagger 或 Postman 等工具记录 API。

总结

REST API 是现代 Web 开发的基石。通过学习在 JavaScript 中操作 REST API,无论是在客户端还是服务端,你都将获得构建和集成应用程序的强大技能。实践是关键,从使用公共 API 开始,然后使用 Node.js 和 Express 构建你自己的 API。

欢迎提出问题或寻求关于本指南任何部分的澄清!

最近发表
标签列表