MST

星途 面试题库

面试题:Next.js中API Routes如何处理不同HTTP方法的请求

在Next.js的API Routes中,举例说明如何分别处理GET、POST、PUT和DELETE等常见HTTP方法的请求。请写出基本的代码结构,并阐述不同方法在业务场景中的应用场景。
38.4万 热度难度
前端开发Next.js

知识考点

AI 面试

面试题答案

一键面试

处理不同HTTP方法的代码结构

在Next.js的API Routes中,处理不同HTTP方法的请求可以通过以下方式:

GET请求

export default function handler(req, res) {
  if (req.method === 'GET') {
    // 处理GET请求的逻辑
    const data = { message: '这是GET请求返回的数据' };
    res.status(200).json(data);
  } else {
    res.status(405).end(); // 方法不允许
  }
}

POST请求

export default function handler(req, res) {
  if (req.method === 'POST') {
    // 获取POST请求体数据
    const { body } = req;
    // 处理POST请求的逻辑
    const responseData = { receivedData: body, message: '这是POST请求处理后返回的数据' };
    res.status(200).json(responseData);
  } else {
    res.status(405).end(); // 方法不允许
  }
}

PUT请求

export default function handler(req, res) {
  if (req.method === 'PUT') {
    // 获取PUT请求体数据
    const { body } = req;
    // 处理PUT请求的逻辑,通常用于更新资源
    const updatedData = { updated: body, message: '这是PUT请求更新后返回的数据' };
    res.status(200).json(updatedData);
  } else {
    res.status(405).end(); // 方法不允许
  }
}

DELETE请求

export default function handler(req, res) {
  if (req.method === 'DELETE') {
    // 处理DELETE请求的逻辑,通常用于删除资源
    const deletedMessage = { message: '这是DELETE请求删除资源后返回的信息' };
    res.status(200).json(deletedMessage);
  } else {
    res.status(405).end(); // 方法不允许
  }
}

不同方法在业务场景中的应用场景

GET

  • 数据获取:用于从服务器获取数据,比如获取文章列表、用户信息等。在前端展示数据时,常常使用GET请求来拉取所需数据。例如,一个博客网站获取所有文章的列表,前端通过向/api/articles发送GET请求,后端API处理该请求并返回文章数据。
  • 搜索功能:当用户在搜索框输入关键词进行搜索时,前端可以通过GET请求将关键词作为参数传递给后端API,后端根据关键词进行数据查询并返回搜索结果。

POST

  • 数据提交:常用于创建新资源,如用户注册、提交表单数据等场景。例如,用户在注册页面填写用户名、密码等信息后,前端将这些数据通过POST请求发送到/api/register,后端API接收到数据后进行用户创建操作。
  • 上传文件:在需要上传文件(如图片、文档等)的场景中,通常使用POST请求,并设置Content-Typemultipart/form-data,将文件数据作为请求体的一部分发送到服务器进行处理。

PUT

  • 数据更新:用于更新现有资源的部分或全部数据。例如,用户修改自己的个人资料,前端将修改后的数据通过PUT请求发送到/api/user/profile,后端API根据请求中的数据更新用户的资料信息。
  • 版本控制:在一些需要跟踪资源版本变化的系统中,PUT请求可以用于更新资源版本,确保数据的一致性和完整性。

DELETE

  • 资源删除:用于删除服务器上的资源,比如删除一篇文章、删除一个用户等。例如,管理员在后台管理系统中删除违规用户,通过向/api/user/{userId}发送DELETE请求,后端API根据userId找到对应的用户并将其从数据库中删除。