带你简单了解什么是restful api

1、什么是restful api:

api其实就是接口,而对于restful,首先我们需要了解一下什么rest。rest其实应该描述成rest架构。它其实是SOA架构模式的一种实现。那么什么是SOA呢?在没有提出SOA之前,一般就是一个服务器对应一个客户端的。比如一个web客户端就需要有一个web服务器,一个app客户端就需要有一个app服务器,客户端与服务器之间耦合在一起。但是在提出SOA架构之后,就允许通过定义一个统一的服务器来和多个客户端进行交互,实现了客户端与服务器之间的解耦。此时如果多个客户端有相同的请求,比如app客户端和web客户端都要进行用户名修改,那么只需要向同一个服务器定义的一个统一的接口发送请求,只需要把这个用户名信息以某种表现层(比如json或者xml)传递过去即可。而不用再向之前那样,需要发送请求到各自对应的服务器。这就是SOA架构描述的内容。
 
那么为什么说rest是对SOA架构的一种实现呢?因为,在rest架构中对这个SOA架构的内容进行了具体的细化、实现。比如在rest中规定了一般使用json作为资源、作为数据的表现层。比如说在rest中规定了应该使用什么样的http方法来进行对应的增删改查操作。比如说在rest中规定了url路径应该怎样定义。(不能使用动词,应该使用名词)。rest架构就是描述了这样子的一些内容。如果我们在设计api接口的时候按照rest规定的这个规则、内容去进行设计,那么我们就能够设计出符合rest风格的api,简称restful api。
 

2、详细解析rest:

rest(Representational State Transfer):表现层状态转换。
 
分析:
表现层,表现表现,其实也可以理解为表面,指的是资源的外壳,表示这个资源看起来是什么。比如可以是json,可以是html。资源指的就是一个具体的东西。比如说用户名密码。而状态指的就是资源的这个具体东西的具体的状态、具体的值,比如说用户名是laowang,所以说用户名此时的状态是laowang。那么转换就其实指的是变换、也就是改变。状态转换其实也就是值改变、改变值。
 
那么在这里表现层状态转换的正确理解应该是通过某种方法传递资源的某种表现层实现资源的某种状态发生改变,粗俗一点可以说是通过使用patch方法传递json数据来实现修改存储在服务器的资源的值,更粗俗一点可以说是通过使用patch方法传递名字信息的表现层--{"name": "laoliang"}(json)修改存储在服务器的名字信息(本来是{"name": "laowang"})使其变成{"name": "laoliang"}。
 
那么完整的描述是:通过使用patch方法,传递{"name": "laoliang"}到服务器的某个接口(api),在这个接口中操作数据库的资源,把资源原本的状态信息{"name": "laowang"}修改为传递过来的以json作为表现层的资源的新状态。
 
这样子的话,假如有很多个客户端都需要操作数据库的这个名字信息的话,都只需要传递要修改的名字的新的以某种表现层作为载体的新的状态信息、新的值到这个api接口,便可以直接修改了。定义了这样子的api接口可以实现兼容多个不同的客户端。这是目前软件开发的一个潮流。
 

3、rest架构设计的具体规范:

 
 
参考资料:

猜你喜欢

转载自www.cnblogs.com/axing-articles/p/11409391.html
今日推荐