REST API 与常用 HTTP 方法

发布: (2026年1月12日 GMT+8 00:50)
4 min read
原文: Dev.to

Source: Dev.to

本文使用的真实 API

  • Dog API(无需密钥) – 真实的狗品种和图片
    https://dog.ceo/api

  • ReqRes API(模拟 API) – 用于 POST、PUT、PATCH、DELETE 示例
    https://reqres.in/api

两个 API 都返回 JSON,且无需身份验证

REST 的关键原则

  • 无状态 – 每个请求都是独立的。
  • 客户端‑服务器分离 – 前端和后端相互独立。
  • 统一接口 – 使用标准的 HTTP 方法。
  • 基于资源 – 所有内容都被视为资源。

REST API 中常见的 HTTP 方法

1. GET – 读取数据(Dog API)

用于从服务器获取数据

示例:获取随机狗狗图片

GET https://dog.ceo/api/breeds/image/random
  • 获取一张随机的狗狗图片。
  • 不会修改服务器上的数据。

示例:列出所有狗品种

GET https://dog.ceo/api/breeds/list/all
  • 返回包含所有狗品种的 JSON 对象。

2. POST – 创建资源(ReqRes API)

用于创建新内容

示例:创建用户

POST https://reqres.in/api/users
Content-Type: application/json
{
  "name": "Dog Lover",
  "role": "Trainer"
}
  • 创建一个新用户。
  • 返回带有 ID 的用户对象。

3. PUT – 完整更新资源(ReqRes API)

用于完全替换已有资源

示例:替换用户

PUT https://reqres.in/api/users/2
Content-Type: application/json
{
  "name": "Dog Expert",
  "role": "Veterinarian"
}
  • 替换资源的所有字段。

4. PATCH – 部分更新资源(ReqRes API)

用于更新资源的特定字段

示例:更新用户角色

PATCH https://reqres.in/api/users/2
Content-Type: application/json
{
  "role": "Dog Therapist"
}
  • 只更新 role 字段。
  • 相比完整的 PUT,针对局部修改更高效。

5. DELETE – 删除资源(ReqRes API)

用于删除资源

示例:删除用户

DELETE https://reqres.in/api/users/2
  • 删除 ID 为 2 的用户。
  • 返回 204 No Content 状态码。

常见 HTTP 状态码

  • 200 OK – 请求成功。
  • 201 Created – 已创建新资源。
  • 204 No Content – 删除成功。
  • 400 Bad Request – 请求无效。
  • 401 Unauthorized – 需要身份验证。
  • 404 Not Found – 未找到资源。
  • 500 Internal Server Error – 服务器错误。

为什么 REST API 如此受欢迎

  • 易于理解和实现。
  • 与语言和平台无关。
  • 使用轻量级的 JSON 格式。
  • 能够很好地扩展到大型系统。
  • 所有现代框架都提供支持。

最后思考

REST API 为真实世界的应用提供动力——甚至是像狗狗图片应用这样有趣的项目 🐶!使用 Dog API 这样的真实端点可以直接尝试 GET 请求,而 ReqRes 这类模拟 API 则帮助你练习完整的 CRUD 方法。可以在浏览器、Postman 或代码中调用这些端点——这样你就能以正确的方式学习 REST 🚀

编码愉快!

Back to Blog

相关文章

阅读更多 »

Axios

Axios 的封面图片 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com...

构建 HTML 媒体播放器

构建 HTML 视频播放器 在过去的几天里,我完成了 freeCodeCamp 的另一个工作坊和实验。我进行了一项名为 “Build an HTML V...” 的项目。