什么是REST?RESTful架构的设计?

什么是REST?

REST(Resource) Representational State Transfer 的缩写 (不是英文单词 rest ),直接翻译过来是“表现层状态转移”,但这个名词听了相信一定更加懵逼,所以后面就从作用上论述什么是REST

REST的作用

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

RESTful架构的设计

资源设计

在REST中有个资源的概念,如网络上的一张图、一种服务、一首歌曲都是一个资源,你可以用URI(统一资源定位符)来指向它,每个资源应对应唯一的一个URI。因此RESTful架构规定网址不能出现动词,只能是名词,这些名词往往是与数据库对应的,所以一般推荐用复数表示。如:

一个网站动物的资源:https://api.example.com/v1/animals

因为有多种动物,所以名词 animals 使用复数。

总结: 每个url代表一种资源. url上不能有动词, 只能是名词,并且一般都和数据库的表名相同,并且是使用复数

动作设计

RESTful 要求统一接口,对每个资源只能执行一组有限的操作。

如 HTTP1.1 协议提供的7个HTTP方法:GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS

这就是 HTTP1.1协议提供的统一接口,这7个方法分别是用来:

GET(SELECT):从服务器取出资源(一项或多项)。

POST(CREATE):在服务器新建一个资源。

PUT(UPDATE):在服务器更新资源(PUT更新整个对象) 

PATCH(UPDATE):在服务器更新资源( PATCH更新个别属性 )

DELETE(DELETE):从服务器删除资源。

HEAD:获得一个资源的元数据,比如一个资源的hash值或者最后修改日期;

OPTIONS:获得客户端针对一个资源能够实施的操作;

preview

为什么使用RESTful架构

在早些年网页的开发前后端是高度耦合的,比如 JSP 等,在以前只在电脑上的话还没什么事,但现在随着互联网的发展,越来越多的客户端开始出现,如Android、IOS,为了能够统一接口,因此RESTful架构应运而生。

 

知乎上Ivony对其有句概括很清晰:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

 

参考:

https://www.zhihu.com/question/28557115/answer/48094438 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
REST(Representational State Transfer)是一种软件架构风格,用于构建分布式系统。它是一种基于网络的设计原则,强调在系统中以资源为中心进行通信和交互。RESTful是符合REST原则的应用程序设计风格。 RESTful的主要原则包括: 1. 资源:在RESTful架构中,所有的数据和功能都被视为资源。每个资源都有一个唯一的标识符(URI)来访问和操作。 2. 统一接口:RESTful架构使用统一的接口风格,包括使用HTTP方法(GET、POST、PUT、DELETE等)对资源进行操作,以及使用HTTP状态码来表示请求的结果。 3. 无状态:RESTful架构是无状态的,即服务器不会存储客户端的状态信息。每个请求都应该包含足够的信息来处理请求,服务器不需要维护会话状态。 4. 可缓存:RESTful架构支持对响应进行缓存,以提高性能和减少网络流量。 REST/RESTful的用途包括: 1. Web服务:RESTful架构被广泛用于构建Web服务,通过HTTP协议进行通信,并使用JSON、XML等格式来表示数据。 2. API设计:将应用程序功能以RESTful的方式暴露为API接口,使得其他应用程序可以通过HTTP请求进行访问和集成。 3. 分布式系统:RESTful架构适用于构建分布式系统,通过资源的唯一标识符和HTTP方法进行通信和交互。 4. 轻量级通信:由于RESTful使用HTTP协议作为通信协议,它具有轻量级、简单和易于实现的特点,适用于各种场景的通信需求。 总而言之,REST/RESTful是一种基于网络的软件架构风格,强调以资源为中心进行通信和交互。它具有简单、可扩展和可维护的特点,适用于构建Web服务、API设计以及分布式系统等场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值