当前位置: 首页 > news >正文

Restfull API 风格规则以及特点

RESTful API(Representational State Transfer)是一种基于 Web 的 API 设计风格,具有简洁、结构清晰、语义明确等特点,常用于前后端分离的系统中。


一、RESTful API 的核心理念

REST 不是协议,而是一种 设计风格,其核心理念是:

  • 将资源作为核心(Everything is a resource)
  • 通过 HTTP 方法对资源进行操作(使用标准动词)
  • 无状态通信(Stateless)
  • 使用统一接口(Uniform Interface)

二、RESTful API 的命名规则(规范)

1. 资源 URI 命名

  • 使用名词,且一般使用复数形式
  • 避免动词(动作由 HTTP 方法表示)

例如:

GET    /users           获取用户列表
GET    /users/123       获取 ID 为 123 的用户
POST   /users           创建一个新用户
PUT    /users/123       更新 ID 为 123 的用户
DELETE /users/123       删除 ID 为 123 的用户

2. 使用标准 HTTP 方法表示操作

HTTP 方法作用
GET获取资源
POST创建资源
PUT更新资源(整体)
PATCH更新资源(部分)
DELETE删除资源

3. 使用路径层级表达资源之间的关系

GET /users/123/orders         获取用户 123 的所有订单
GET /users/123/orders/456     获取用户 123 的订单 456

4. 使用查询参数表示过滤、排序、分页等

GET /products?category=phone&sort=price_asc&page=2&limit=20

三、RESTful API 的特点

特点描述
资源导向所有内容都被抽象为资源(User、Order、Article 等)
使用标准协议基于 HTTP 协议,直接使用其方法(GET、POST 等)
无状态通信每次请求都包含所有上下文,不依赖服务器保存状态
统一接口接口风格统一、易于理解和使用
可缓存客户端可根据响应头对资源进行缓存,提高性能
分层架构客户端无需知道请求最终由谁处理(例如中间层、负载均衡等)

四、RESTful API 与传统 API 的对比

比较项RESTful API传统 API 风格
接口风格资源导向,结构清晰动作导向,接口混乱
动作表示使用 HTTP 方法表示动作接口路径中包含动词(如 /getUser)
可读性高,可直观理解操作含义低,需要阅读文档才能理解
维护性易于扩展和维护扩展性差,接口膨胀

五、常见 RESTful API 错误码(建议)

状态码含义说明
200OK请求成功
201Created成功创建资源
204No Content请求成功,但无返回内容
400Bad Request请求参数有误
401Unauthorized认证失败
403Forbidden没有权限访问资源
404Not Found资源不存在
500Internal Server Error服务器内部错误

六、什么时候应该用 RESTful?

  • 资源之间关系明确、结构层级清晰
  • 系统需要公开标准 API 供外部系统调用
  • 系统前后端分离,接口要语义化、易于文档化

相关文章:

  • Unity Image组件无法阻挡手势的解决办法
  • JS逆向实战四:某查查请求头逆向解密
  • 鸿蒙OSUniApp开发富文本编辑器组件#三方框架 #Uniapp
  • STM32F103_LL库+寄存器学习笔记23 - PWM波形输出及软件方式调整周期与占空比
  • 【行为型之访问者模式】游戏开发实战——Unity灵活数据操作与跨系统交互的架构秘诀
  • ConfigMap 和 Secret 是否支持热更新
  • Screen Mirroring App:轻松实现手机与电视的无缝投屏
  • 【C/C++】深度探索c++对象模型_笔记
  • elasticsearch硬件与资源配置优化
  • Docker 疑难杂症解决指南:从入门到进阶的全面剖析
  • 【leetcode】349. 两个数组的交集
  • 银行卡真伪验证助力金融合规-银行卡实名认证接口
  • 联排半孔PCB如何进行SMT贴片?
  • MySQL增删查改进阶
  • Python机器学习笔记(二十二、模型评估-交叉验证)
  • 【消息队列】RabbitMQ基本认识
  • Qml自定义组件之车辆风扇展示
  • TypeScript装饰器:从入门到精通
  • PyTorch中mean(dim=1)的深度解析
  • k8s 中使用 Service 访问时NetworkPolicy不生效问题排查
  • 视频丨美国两名男童持枪与警察对峙,一人还试图扣动扳机
  • 反制美国钢铝关税!印度拟对美国部分商品征收关税
  • 支持企业增强战略敏捷更好发展,上海市领导密集走访外贸外资企业
  • 上海能源科技发展有限公司原董事长李海瑜一审获刑13年
  • 民生谣言误导认知,多方联动守护清朗——中国互联网联合辟谣平台2025年4月辟谣榜综述
  • “海豚音”依旧互动更多,玛丽亚·凯莉本周来沪开唱