RESTful API介绍

简介

RESTful,一种API的设计风格,它不是一个标准或协议,而是一种架构思想。一个API如果遵循了REST风格的设计原则,就是RESTful API

rest:representational state transfer,表现层状态转移。

RESTful API的特点:

  • 使用标准的http方法:
    • GET:获取资源
    • POST:创建新资源
    • PUT:更新整个资源
    • PATCH:部分更新资源
    • DELETE:删除资源
  • 使用 URI 来标识资源:资源通常是名词,使用复数形式,并且避免在 URI 中使用动词。
    • GET /users (获取所有用户列表)
    • GET /users/1 (获取 ID 为 1 的用户详情)
    • POST /users (创建一个新用户)
    • PUT /users/1 (更新 ID 为 1 的用户信息)
    • DELETE /users/1 (删除 ID 为 1 的用户)
  • 无状态:每次请求都独立,服务器不记录会话
  • 数据格式通常使用 JSON:虽然 REST 不限制数据格式,但 JSON 因其轻量和易读性已成为事实上的标准。

RESTful 设计的核心原则:

1、客户端-服务器分离:客户端(如手机 App、网页浏览器)和服务器(提供数据和服务的后端)是独立的。它们通过统一的接口进行通信,彼此不关心对方的内部实现,只要接口不变,它们可以独立开发和演化。

2、无状态:服务器不会保存客户端的任何会话状态。每一个从客户端发往服务器的请求,都必须包含处理该请求所需的全部信息。好处:提高了系统的可靠性、可见性,并且让服务器更容易扩展。

3、可缓存:客户端或中间的代理服务器可以缓存服务器返回的响应数据。这可以显著提高性能,减少服务器压力。服务器需要在响应中明确指示该数据是否可缓存。

4、统一接口:这是 REST 设计中最核心的特征。它规定了客户端和服务器之间通信的标准方式,包括:

  • 资源标识:每个资源(如用户、订单)都有一个唯一的标识符,通常就是 URI(URL)。例如:/users/123
  • 通过表征操作资源:客户端通过操作资源的"表征"(通常是 JSON 或 XML 格式的数据)来操作服务器上的资源,而不直接操作资源本身。客户端不需要知道服务器的内部实现(数据库是 MySQL 还是 MongoDB?用户对象在代码里是什么结构?)。它只需要懂得一种统一的语言(如 JSON)和协议(HTTP),通过交换资源的"描述文件"(表征),就能远程指挥服务器对资源进行增删改查。
  • 自描述的消息:每个消息(请求或响应)都包含足够的信息来描述如何处理自己。

常见问题

RESTful API中,POST方法和PUT方法有什么区别? POST方法用于新增资源,PUT方法用于新增或整体替换资源。PUT方法额外的还有幂等性的语义,POST则没有

相关推荐
vipbic2 小时前
基于 Nuxt 4 + Strapi 5 构建高性能 AI 导航站
前端·后端
老华带你飞3 小时前
电商系统|基于java + vue电商系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
OC溥哥9993 小时前
2D我的世界创造模式网页版正式出炉——《我们的2D创造世界:无限创意,多人同乐》欢迎来到ourcraft.xin网站上玩
后端·python·阿里云·flask·html·游戏程序
laocooon5238578863 小时前
Rust 编程语言教学目录
开发语言·后端·rust
小希smallxi3 小时前
Rust语言入门
开发语言·后端·rust
默 语4 小时前
Spring Boot 3.x升级踩坑记:到底值不值得升级?
hive·spring boot·后端
Java编程爱好者4 小时前
JDK 21 中的虚拟线程:革新 Java 多线程
后端
悟能不能悟4 小时前
springboot controller返回的是HttpServletResponse成功返回excel文件流,失败就返回失败参数
spring boot·后端·excel
神奇小汤圆4 小时前
面试官:如何在 Kafka 中实现延迟消息?
后端