RESTful API 是现代 Web 应用程序开发的核心基础技术之一,而响应状态码则是 RESTful API 中非常重要的一部分。每一个 API 请求都会返回一个响应状态码,这个状态码告诉客户端请求处理是否成功,并提供必要的信息以供客户端做出适当的响应。
本篇文章旨在介绍 RESTful API 中最常见的响应状态码,分别是:200 OK、201 Created、204 No Content、400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found、500 Internal Server Error 和 502 Bad Gateway。我们将详细讨论每个状态码的含义、在何种情况下被使用以及如何在代码示例中正确地返回这些状态码。
200 OK
200 OK 表示 API 请求已成功处理,并返回了响应数据。这是最常见的状态码之一,通常用于请求数据、修改数据、以及删除数据等操作。
在 JavaScript 中,返回 200 OK 可以采用以下示例代码:
-- -------------------- ---- ------- -------- ---------------- - -- ------ - -- -------------- - ---- - -- -------------------- - - ------------------ -------------- -- - -- ------------- - ------ ---------------- - ---- - ----- --- -------------- -------- --- --- ------ - -- ---------- -- ----------------- ------------ -- ----------------------
201 Created
201 Created 表示请求已经成功处理,并创建了新的资源。这个状态码通常用于创建新数据的请求操作。
可以使用以下示例代码返回 201 Created:
app.post('/api/data', (req, res) => { const newData = req.body; // 创建新数据 const newId = createNewData(newData); // 返回新数据的 ID res.status(201).json({id: newId}); });
204 No Content
204 No Content 表示请求已经成功处理,但是没有返回响应数据。这个状态码通常用于修改或删除数据的请求操作。
以下是返回 204 No Content 的示例代码:
app.delete('/api/data/:id', (req, res) => { const dataId = req.params.id; // 删除数据 deleteData(dataId); res.status(204).send(); });
400 Bad Request
400 Bad Request 表示客户端发送了错误或非法的请求。这个状态码通常在客户端发送请求数据不完整或有错误时被使用。
以下是如何在代码中返回 400 Bad Request 的示例:
-- -------------------- ---- ------- --------------------- ----- ---- -- - ----- ------- - --------- -- ---------- - -- ---------- ---------------------------- ---- ------------ - ---- - -- ----- ----- ----- - ----------------------- -- ------ -- ------------------------- -------- - ---
401 Unauthorized
401 Unauthorized 表示客户端未经授权就尝试访问受保护的资源。这个状态码通常在客户端没有提供正确的身份验证信息时被使用。
以下是如何在代码中返回 401 Unauthorized 的示例:
-- -------------------- ---- ------- -------- -------------------------- --------- - -- -------- -- ---------- ---- -- -------------- - ------------------------------ ----- ---- -- - ----- ---------- - -------------------------- -- ------------- - -- ---------- ---------------------------- ------------------ - ---- - ----- ---------- ---------- - ------------------ --- -- ----------------------- --- -------- - -- ---------- ---------------------------- ---- ------------ ------- - ----- ----------- - ---------------------- ---------------------------- ----- ---------- --------- - ----------------------- ----- ---- - -------------------------- ---------- -- ------- - -- -------- ---------------------------- ------------------ - ---- - -- ----------------- --------------- ---------- --------- - - ---
403 Forbidden
403 Forbidden 表示客户端虽然提供了身份验证信息,但是所请求的资源仍然被认为是禁止访问的。这个状态码通常在客户端身份验证通过,但是没有足够的权限访问资源时被使用。
以下是如何在代码中返回 403 Forbidden 的示例:
-- -------------------- ---- ------- -------- ------------------- ----- - -- ------------- - -------------------------- ----- ---- -- - ----- ---------- - -------------------------- -- ------------- - -- ---------- ---------------------------- ------------------ - ---- - ----- ---------- ---------- - ------------------ --- -- ----------------------- --- --------- - -- ---------- ---------------------------- ---- ------------ ------- - ----- ---- - ---------------------------- -- ------- - -- -------- ---------------------------- ------------------ - ---- -- --------------------- --------- - -- --------- ---------------------------- --------------- - ---- - -- ------------- --------------- ------ --------- - - ---
404 Not Found
404 Not Found 表示客户端请求了不存在的资源。这个状态码通常在客户端请求一个不存在的 API 路径时被使用。
如以下示例所示:
-- -------------------- ---- ------- ------------------------ ----- ---- -- - ----- ------ - -------------- ----- ---- - -------------------- -- ------- - -- -------- --- --- ----- ---------------------------- ---- ---------- - ---- - -- ---- --------------- - ---
500 Internal Server Error
500 Internal Server Error 表示服务器处理请求时遇到了意外错误。这个状态码通常在客户端发送了一个有效请求,但服务器无法处理该请求时被使用。
以下是如何在代码中返回 500 Internal Server Error 的示例:
-- -------------------- ---- ------- ------------------------------ ----- ---- -- - --- - ------------------------------- ----------------------- - ----- ------- - -- ---- --- -------- --------------------- ---------------------------- --------- ------ ---------- - ---
502 Bad Gateway
502 Bad Gateway 表示客户端请求的资源无法访问或响应。这个状态码通常在客户端请求的资源无法访问或请求到的服务遇到了错误时被使用。
以下是如何在代码中返回 502 Bad Gateway 的示例:
-- -------------------- ---- ------- --------------------------- ----- ---- -- - --- - ----- ---------- - ------------------------ --------------------- - ----- ------- - -- -------------- --------------------- ---------------------------- ---- ------------ - ---
结论
RESTful API 是现代 Web 应用程序开发的核心基础技术之一,响应状态码则是 RESTful API 中非常重要的一部分。在代码编写中,合理地使用响应状态码可以让我们更好地处理请求和响应,并将错误信息展示给客户端,以增强用户体验。了解常见的 RESTful API 响应状态码以及如何正确地使用它们,可以帮助后端和前端工程师更好地建立和维护 RESTful API 服务。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/671f408e2e7021665efc9e3c