RESTful API 中的状态码指南

在开发 RESTful API 时,状态码的正确使用非常重要。状态码可以传达给客户端当前请求的处理结果,从而使客户端能够准确地理解和处理响应。

本文将介绍 RESTful API 中常用的状态码,以及它们的含义和正确的使用方法,以帮助开发者编写高质量、易于理解的 API 代码。

常用状态码

以下是RESTful API 中常用的状态码及其含义:

  • 200 OK:请求成功;
  • 201 Created:已创建。在 POST 请求时使用,表示已经成功创建了资源;
  • 204 No Content:没有内容。用于 DELETE 请求,表示删除成功;
  • 400 Bad Request:请求有误。客户端发送的请求无效;
  • 401 Unauthorized:未授权,需要身份验证;
  • 403 Forbidden:禁止访问。客户端已经认证,但是无法获得请求的资源;
  • 404 Not Found:未找到。客户端请求的资源不存在;
  • 405 Method Not Allowed:不允许使用该方法。请求使用的方法不支持该资源;
  • 409 Conflict:冲突。客户端发送的请求和服务器上现有的资源发生冲突;
  • 500 Internal Server Error:服务器出错。服务器无法处理客户端请求;

正确使用状态码

我们应该根据 HTTP 规范和 API 设计规范来正确地使用状态码。下面是一些使用状态码的最佳实践。

200 OK

当请求成功时,应该返回 200 OK 状态码。一般来说,应该将资源的实体作为响应的主体,并在响应头中添加必要的元数据。

例如,你可以在响应头中包含资源的版本号、上次修改时间或资源的其他元数据。

-------- --- --
------------- ----------------
-------------- ------------
-------------- ---- -- --- ---- -------- ---

-
  ----- ------
  ------- -------
  ------ ---
  -------- ------------------
-

201 Created

当创建新资源时,应该返回 201 Created 状态码。在响应头中应该包含新资源的位置和必要的元数据。

例如,创建一个新的用户账户时:

-------- --- -------
--------- ----------
------------- ----------------

-
  ----- ------
  ------- -------
  ------ ---
  -------- ------------------
-

204 No Content

当对资源进行 DELETE 操作时,应该返回 204 No Content 状态码。在这种情况下,响应主体应该为空,因为已删除的资源不存在。

-------- --- -- -------

400 Bad Request

当请求无效时,应该返回 400 Bad Request 状态码。在响应主体中应该包含一些错误信息,以帮助客户端理解发生了什么错误。

例如,当客户端发送的请求中包含无效的 JSON 数据时:

-------- --- --- -------
------------- ----------------

-
  -------- -------- ---- -----
-

401 Unauthorized

当用户未经授权时,应该返回 401 Unauthorized 状态码。客户端可以通过提供身份验证凭据来重新尝试该请求。

-------- --- ------------
----------------- ----- ----------- -------------- ---------

403 Forbidden

当用户没有权限访问资源时,应该返回 403 Forbidden 状态码。

-------- --- ---------
------------- ----------------

-
  -------- ---- ----- ---- ---------- -- ------ ---- ----------
-

404 Not Found

当客户端尝试访问不存在的资源时,应该返回 404 Not Found 状态码。

-------- --- --- -----
------------- ----------------

-
  -------- --------- --- ------
-

405 Method Not Allowed

当客户端使用不受支持的 HTTP 方法时,应该返回 405 Method Not Allowed 状态码。

-------- --- ------ --- -------
------ ---- ----

409 Conflict

当客户端请求和现有资源发生冲突时,应该返回 409 Conflict 状态码,以便客户端了解情况并采取必要的措施。

-------- --- --------
------------- ----------------

-
  -------- --------- ------- -------
-

500 Internal Server Error

当服务器无法处理客户端请求时,应该返回 500 Internal Server Error 状态码。

-------- --- -------- ------ -----
------------- ----------------

-
  -------- --------- ------ ------
-

总结

在 RESTful API 中,正确使用状态码可以让客户端了解到他们操作的结果以及如何解决错误。通过使用适当的状态码、带有正确的元数据的响应头和适当的响应主体,可以使 RESTful API 更加易于使用和理解。

建议您在开发RESTful API时,遵循HTTP规范,使用最佳实践,并为客户端提供清晰的错误信息。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6497e06248841e98944e8667


猜你喜欢

  • 基于 Enzyme 和 Jest 进行 React 组件 UI 测试

    React 是一个非常受欢迎的前端框架,通过组件化的方式让我们能够更加方便地开发 Web 应用。但是,随着应用逐渐复杂,为了保证应用的质量,我们需要对组件的 UI 进行测试。

    1 年前
  • Material Design 风格实现 RecyclerView 动画效果

    介绍 Material Design 是谷歌推出的一种全新的设计语言,旨在帮助开发人员和设计师创建更好的移动和 Web 应用程序。RecyclerView 是 Android 系统中提供的一个高度可定...

    1 年前
  • 使用 LESS 编写高效的 CSS 样式表

    CSS 是前端开发中非常重要的一环,Web 界面的布局和样式大部分都是由 CSS 实现的。而使用 LESS 可以让 CSS 的编写更加高效,减少代码冗余,提高开发效率。

    1 年前
  • 在 Jest 中测试 React 应用程序中的 HTTP 请求

    在现代的前端应用程序中,经常需要与 API 交互以获取数据。为了保证代码的可靠性和稳定性,我们需要对 HTTP 请求进行测试。 本文将介绍如何在 Jest 中测试 React 应用程序中的 HTTP ...

    1 年前
  • MongoDB的多种查询方式初探

    MongoDB是一个开源的高性能、可扩展和极易部署的NoSQL数据库。在Web开发领域,MongoDB逐渐成为前端工程师们的首选数据库之一,原因在于它具有多种查询方式,能够满足不同开发需求。

    1 年前
  • 在 React TypeScript 中编写通用的 UI 组件

    在使用 React TypeScript 开发应用程序时,编写通用的 UI 组件是非常重要的。通用的 UI 组件可以提高代码的可重用性和可维护性。在本文中,我们将介绍如何在 React TypeScr...

    1 年前
  • Webpack 项目的增量编译优化

    Webpack 是一个现代化的前端构建工具,它能够将各种类型的文件,如 JavaScript、CSS、图片等,转换为静态资源供浏览器使用。Webpack 的好处是能够优化我们的文件大小、合并代码、异步...

    1 年前
  • 解决 Redux 在 React Native 中使用时遇到的问题

    前言 React Native 是近年来非常流行的跨平台移动应用开发框架,它通过使用 JavaScript 和 React 技术栈,实现了一套统一的平台无关的开发体验,使得开发人员能够通过简洁明了的语...

    1 年前
  • ES8 中的新特性:Reflect API

    随着 JavaScript 的快速发展,我们不断地追赶着其新特性和变化。在 ECMAScript 2017 (ES8) 中,引入了新的对象 Reflection API,即 Reflect。

    1 年前
  • 使用 ECMAScript 2019 的新方法快速解决异步编程问题

    异步编程是现代 Web 应用中不可避免的一个话题。在以前,我们通常使用回调函数和 Promise 进行异步编程。但是,这些方法不太直观和容易理解,且可能会导致回调地狱和代码复杂性。

    1 年前
  • ES7 中的 Array.prototype.fill()

    在 JavaScript 中,数组是一种非常常见的数据类型。ES7 中,新增加了一个非常实用的方法 Array.prototype.fill(),它可以让我们更方便地初始化一个数组,也可以方便地重置数...

    1 年前
  • 解决 Express.js 中 req.body 为 null 的问题

    在使用 Express.js 时,我们经常会遇到 req.body 返回 null 或空对象的问题,这可能是由于许多原因引起的,但最常见的原因是没有设置正确的中间件。

    1 年前
  • 解决使用 Tailwind CSS 时出现的字体大小问题的方法总结

    背景介绍 Tailwind CSS 是一个快速、高效的 CSS 框架,它可以帮助前端开发者快速构建网站、应用等界面。在实际使用中,有时会遇到字体大小不符合预期的问题,本文介绍解决该问题的方法。

    1 年前
  • Next.js 如何处理内存泄漏问题?

    在使用 Next.js 进行开发的时候,我们可能会遇到一些内存泄漏的问题,这些问题可能会导致整个服务器崩溃。而如何处理这些内存泄漏的问题,是一个需要我们深入研究的话题。

    1 年前
  • Serverless 如何处理并发请求

    Serverless已经成为一个热门话题,越来越多的公司和开发者转向使用 Serverless 架构来构建和部署应用程序。Serverless 架构最大的优点是开发者不需要考虑底层硬件和软件资源的问题...

    1 年前
  • PWA 应用中的推送通知实现方法

    前言 PWA(Progressive Web Apps)是指渐进式 Web 应用,是一种通过网站技术实现应用程序的方法。与原生应用程序类似,PWA 应用可以实现离线访问、桌面快捷方式、推送通知等功能,...

    1 年前
  • Koa2 + MongoDB 实战:使用 Mongoose 连接 MongoDB

    前言 Koa2 是一个基于 Node.js 平台的下一代 web 开发框架。Mongoose 是一个 MongoDB 的对象模型管理工具,它使用 Node.js 回掉风格的 API 和查询语句。

    1 年前
  • SASS 中变量引用的坑点及解决方法

    在使用 SASS 进行前端开发的过程中,变量是一个非常方便的功能,可以大大减少代码的冗余度。然而,在使用变量进行引用时,也有一些坑点需要我们注意。在本文中,我们将介绍 SASS 中变量引用的坑点,并提...

    1 年前
  • 在 Node.js 中使用 GraphQL 的优势和实现

    随着前端技术的不断发展和完善,越来越多的应用程序采用了前后端分离的架构方式,前端采用现代 JavaScript 框架,如 React、Vue.js 等,而后端采用 Node.js 等服务器端框架。

    1 年前
  • Angular 中使用 IterableDiffers 优化性能

    在Angular中,当我们使用 *ngFor 指令来迭代一组数据时,有时候会遇到性能问题。比如说我们有一个列表,其中会经常添加、删除、修改数据,这时候每次数据变更都会触发视图更新,导致程序效率低下。

    1 年前

相关推荐

    暂无文章