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

什么是 RESTful 风格?

一、什么是 REST ?

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Thomas Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

  • Representation(资源的表述):资源的表述指的是资源在某个特定时刻的状态的描述,即资源的具体表现形式,它可以有多种格式,例如 HTML、XML、JSON、纯文本、图片、视频、音频等等。
  • State Transfer(状态转移):资源状态转移,简单点说就是,客户端与服务端进行交互时,资源从一种表现形式转换到另一种表现形式的过程。但是 HTTP 协议是一种无状态协议,它是无法保存任何状态的,因此如果客户端想要获取服务器上的某个资源,就必须通过某种手段让资源在服务器端发生“状态转化”。

二、什么是 RESTful 风格?

1、传统方式

在传统的项目开发中,我们通常都会将操作资源的动词写进 URL 中,而这些动词通常都是我们自行定义的,并没有一个统一的规范。哪怕是对同一资源的相同操作,不同的人所定义的 URL 也是各不相同的。比如获取用户信息:

  • http://localhost:8080/getUserById?id=1
  • http://localhost:8080/user/getById?id=1
  • http://localhost:8080/findUserById?id=1

2、RESTful 风格

(1)什么是RESTful ?

REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

(2)如何设计 RESTful API ?

API(应用程序编程接口)是一组规则,用于定义应用程序或设备如何相互连接和通信。 REST API 是符合 REST(表述性状态转移)架构样式设计原则的 API。 因此,REST API 有时被称为 RESTful API。

RESTful提倡我们使用统一的风格来设计 URL,其规则如下:

1. URL(对应资源

  • URL 只用来标识和定位资源,不得包含任何与操作相关的动词,只包含名词即可,而且所用的名词往往与数据库的表名对应。
    示例:http://localhost:8080/biancheng/user

  • 当请求中需要携带参数时,RESTFul 允许我们将参数通过斜杠(/)拼接到 URL 中,将其作为 URL 的一部分发送到服务器中,而不再像以前一样使用问号(?)拼接键值对的方式来携带参数。
    示例:http://localhost:8080/biancheng/user/1

2. HTTP Method(对应状态转移

  • HTTP 协议中有四个表示操作方式的动词:GET、POST、PUT 和 DELETE,它们分别对应了四种与资源相关的基本操作: GET 用来获取资源, POST 用来新建资源, PUT 用来更新资源, DELETE 用来删除资源。客户端通过这四个动词,即可实现对服务器端资源状态转移的描述。
    示例:GET、POST、PUT 和 DELETE

RESTful 将对资源的操作都定义在HTTP Method 中,使得URL地址看起来更简洁。

3、传统方式 vs RESTful 风格

资源操作传统方式RESTful 风格
传统方式 URLHTTP 请求方式RESTful URLHTTP 请求方式
获取资源(Read)http://localhost:8080/biancheng/getUserById?id=1GEThttp://localhost:8080/biancheng/user/1GET
保存或新增资源(Create)http://localhost:8080/biancheng/saveUserPOSThttp://localhost:8080/biancheng/userPOST
修改或更新资源(Update)http://localhost:8080/biancheng/updateUserPOSThttp://localhost:8080/biancheng/userPUT
删除资源(Delete)http://localhost:8080/biancheng/deleteUser?id=1GEThttp://localhost:8080/biancheng/user/1DELETE

附录

参考:RESTful(REST风格)是什么
RESTful(REST风格)是什么

参考来源

  • RESTful(REST风格)是什么
  • RESTful_百度百科
  • 什么是 REST API? - 中国 | IBM
http://www.lryc.cn/news/12896.html

相关文章:

  • 从业6年,对敏捷和自动化测试的一点心得
  • ThreeJS 之界面控制
  • 【查找算法】解析学习四大常用的计算机查找算法 | C++
  • Android实例仿真之一
  • 软考高级-信息系统管理师之重要工具和技术的口语化表示(最新版)
  • 基于springboot+vue的个人健康信息服务平台
  • SpringBoot2.x实战专题——SpringBoot2 多配置文件【开发环境、测试环境、生产环境】
  • 测试2:编写测试用例的方法
  • docker安装配置镜像加速器-拉取创建Mysql容器示例
  • WSL1和WSL2相互转换以及安装路径迁移相关问题
  • 系统分析*
  • 【redis】持久化:RDB和AOF
  • 2023Python接口自动化测试实战教程,附视频实战讲解
  • 【原创】java+swing+sqlserver药品管理系统设计与实现
  • 软考高级信息系统项目管理师系列之二十七:信息文档管理与配置管理
  • 软考高级-信息系统管理师之项目管理基础(最新版)
  • leetcode240+Search a 2D Matrix II+从右上角开始
  • 0xL4ugh 2023
  • Mybatis(4)之跟着老杜做一个简单的银行转账会话
  • VBA提高篇_ 22 事件处理
  • 【蓝桥杯集训·周赛】AcWing 第91场周赛
  • 【人工智能AI】三、NoSQL 实战《NoSQL 企业级基础入门与进阶实战》
  • platform 总线
  • 2023第10届生物发酵展3月30-4月1号山东济南开展,参观路线来了
  • RK356x U-Boot研究所(命令篇)3.6 fdt命令的用法
  • 2023年社工工资多少钱一月 能领多少补贴
  • 面试攻略,Java 基础面试 100 问(十一)
  • 接口测试(Fiddler工具)
  • Debian/Ubuntu 安装和使用 perf 调试工具
  • 【Python语言基础】——Python NumPy 数组连接