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

相关推荐
SimonKing40 分钟前
全网爆火的OpenClaw保姆级教程Linux版,它来了。
java·后端·程序员
青柠代码录1 小时前
【Linux】常用命令:sort
后端
小江的记录本1 小时前
【MyBatis-Plus】MyBatis-Plus的核心特性、条件构造器、分页插件、乐观锁插件
java·前端·spring boot·后端·sql·tomcat·mybatis
驕傲的兎孒2 小时前
基于 SpringBoot + Vue3 + AI 打造企业级售后服务支持平台 | 实战方案分享
人工智能·spring boot·后端
大傻^2 小时前
Spring AI Alibaba 可观测性实践:AI应用监控与链路追踪
java·人工智能·后端·spring·springaialibaba
诗人不写诗2 小时前
spring是如何组织切面的
java·后端·spring
小杨同学492 小时前
STM32 进阶封神之路(二十二):DMA 实战全攻略 ——ADC 采集 + 串口收发 + 内存复制(库函数 + 代码落地)
后端·单片机·嵌入式
天下无贼!2 小时前
【Python】2026版——FastAPI 框架快速搭建后端服务
开发语言·前端·后端·python·aigc·fastapi
大傻^3 小时前
Spring AI Alibaba Agent开发:基于ChatClient的智能体构建模式
java·数据库·人工智能·后端·spring·springaialibaba
大傻^3 小时前
Spring AI Alibaba ChatClient实战:流式输出与多轮对话管理
java·人工智能·后端·spring·springai·springaialibaba