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则没有

相关推荐
葫芦和十三3 小时前
图解 MongoDB 23|两地三中心:跨可用区部署怎么扛机房故障
后端·mongodb·agent
勇哥java实战分享5 小时前
PaddleOCR 太慢?我换成 RapidOCR 后,速度直接起飞
后端
苏三说技术9 小时前
LangChain4j 和 LangGraph4j,哪个更好?
后端
ServBay11 小时前
7 个AI开发中真正用得上的 MCP Server,配合Claude Code食用效果更佳
后端·claude·mcp
妙码生花11 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
用户67570498850211 小时前
Go 语言里判断字符串为空,90% 的人都写错了!
后端·go
用户67570498850212 小时前
Go 进阶必修:90% 的人都没用对的“表驱动法”
后端·go
小兔崽子去哪了12 小时前
Java 生成二维码解决方案
java·后端
苍何12 小时前
懂事的 Agent 已经开始自己看屏幕干活了,效率起飞!
后端