来源:极链科技作者:刘聪
说到接口的设计大部分人第一个想到的可能是REST;的确,REST是目前最为普遍的一种接口设计方式,并且作为一个优秀的接口设计标准而被广泛使用,但是除此之外,我们也不应该忘记还有其他的选项。除了REST,我们还有rpc(或者grp),最近大火GraphQL,以及webhooks. 为了好的了解这几种设计以及背后的优缺点,我们一一做简单的介绍。
- REST
首先REST--Resource Representational State Transfer, 中文直译就是资源在网络中以某种表现形式进行状态转移;光这么看确实还是比较头大,每个单词拆开可能比较好理解;
Resource:资源,那对于程序来讲就是数据;
Representational:表现形式,我们在web开发中常用的传输类型比如TXT、HTML、JSON、XML、JPEG等;
State Transfer:状态变化,对应的是HTTP协议中的动词(常用的动词如:GET POST PUT PATCH DELETE);
REST基于HTTP,所以也是无状态的,以HTTP的各种动词来定义约定一系列的URL来操作资源;它描述的是网络中client与server的一种交互形式。
但是我们在谈REST的时候其实并不是谈论REST本身,而是RESTful API,即REST 风格的网络接口设计;来看几个最基础RESTful API的URL: