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

相关推荐
东风破_6 小时前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范
嘻哈∠※6 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现
java·spring boot·后端
卷无止境6 小时前
在 awesome-fastapi 里,哪些库值得一看?
后端·python
卷无止境7 小时前
FastAPI 的Admin面板生态
后端·python
捡田螺的小男孩9 小时前
什么是 Skill?手把手带你写一个简单有用的 Skill!
前端·后端·程序员
IT_陈寒9 小时前
Redis集群这个坑,差点让我通宵
前端·人工智能·后端
用户8356290780519 小时前
Python 自动化 Word 文本框处理:创建、定位、填充内容与管理
后端·python
网渡科技9 小时前
向量数据库选型指南:RAG场景下的性能对比与调优策略
后端
riverNijika10 小时前
项目学习笔记:C++基础同步输出日志库
后端
Lyra_Infra10 小时前
OpenClaw 升级及 Channel 安装故障排查与遗留问题分析
后端·npm