REST API 介绍

REST API 教程

 

REST(Representational State Transfer)是一种软件架构风格,用于设计网络应用程序的接口。

REST API(Application Programming Interface)是基于 REST 原则构建的 Web 服务接口,它允许不同的系统通过 HTTP 协议进行通信和数据交换。

REST API 的核心特点包括:

  • 无状态性(Stateless):每个请求都包含处理该请求所需的全部信息
  • 资源导向(Resource-based):所有数据被视为资源,通过 URI 标识
  • 统一接口(Uniform Interface):使用标准 HTTP 方法(GET、POST、PUT、DELETE 等)
  • 可缓存性(Cacheable):响应可以明确标记为可缓存或不可缓存

REST API 的核心概念

1. 资源(Resource)

在 REST 中,资源是任何可以命名的信息,如用户、产品、订单等。每个资源都有一个唯一的标识符(URI)。

2. HTTP 方法

REST API 使用标准 HTTP 方法来定义对资源的操作:

HTTP 方法 描述 幂等性 安全性
GET 获取资源
POST 创建新资源
PUT 更新整个资源
PATCH 部分更新资源
DELETE 删除资源

3. 状态码

HTTP 状态码表示请求的处理结果:

状态码 类别 常见状态码
2xx 成功 200 OK, 201 Created
3xx 重定向 301 Moved Permanently
4xx 客户端错误 400 Bad Request, 404 Not Found
5xx 服务器错误 500 Internal Server Error

4. 数据格式

REST API 常用的数据交换格式:

  • JSON(JavaScript Object Notation)
  • XML(eXtensible Markup Language)
  • 有时也使用 YAML、CSV 等格式

REST API 设计最佳实践

1. URI 设计原则

  • 使用名词而非动词表示资源
    • 好:/users
    • 不好:/getUsers
  • 使用小写字母和连字符(-)
  • 避免文件扩展名
  • 使用复数形式表示集合
  • 分层次表示关系:/users/{id}/orders

2. 版本控制

建议在 URI 或请求头中包含 API 版本信息:

  • URI 路径:/v1/users
  • 请求头:Accept: application/vnd.myapi.v1+json

3. 过滤、排序和分页

对于集合资源,提供查询参数:

  • 过滤:/users?role=admin
  • 排序:/users?sort=-created_at
  • 分页:/users?page=2&limit=10

4. 安全性

  • 使用 HTTPS
  • 实施身份验证(OAuth2、JWT)
  • 限制请求频率
  • 验证输入数据

REST API 示例

用户管理 API 示例

实例

# 获取用户列表
GET /api/v1/users
Accept: application/json

# 创建新用户
POST /api/v1/users
Content-Type: application/json

{
  "name": "张三",
  "email": "zhangsan@example.com"
}

# 获取特定用户
GET /api/v1/users/123
Accept: application/json

# 更新用户信息
PUT /api/v1/users/123
Content-Type: application/json

{
  "name": "张三(更新)",
  "email":&nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋进学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值