如果您用螺丝、钉子和板材等一系列原材料组装过家具,那么肯定看到过各种千奇百怪的螺丝,比如一字螺丝、十字螺丝、三角螺丝、六角螺丝等。为了加固这些各式各样的螺丝,您需要准备各式各样的螺丝刀。因此,您的工具箱会被不同规格和大小的螺丝刀填满。
不知道您是不是和作者一样,面对塞满螺丝刀的、乱七八糟的工具箱,心里也会非常烦躁。后来,作者在商场看到一款螺丝刀,它虽然只有一个刀柄,但提供了包含各种形状和大小的一整套螺丝刀刀头。这样在使用时,只需要根据螺丝的规格,选择相同形状的螺丝刀刀头就可以了。
与此同时,将它们放在工具箱里又显得十分整齐。如果后面需要使用其他特殊形状的螺丝刀,那么只需要购买与刀柄连接口一样的螺丝刀刀头就可以了,而不用再买一款螺丝刀。
如果您理解了上述场景,那么应该也能够很好地理解RESTful风格的接口。REST指的是一组架构约束条件和设计原则,其本质是为了让访问者依据URI就可以找到资源,然后通过简单的输入和输出完成与服务的交互。
REST所约束的每一个URI都是独一无二的资源,可通过HTTP方法进行资源操作,实现表现层的状态转移。这就像螺丝刀刀头一样,待解决的问题就像螺丝,每一个接口只面向一种特定的资源,而不用管其他接口的处理方式,这样您就能够一目了然地知道该用哪种螺丝刀刀头固定哪种螺丝了,从而降低接口开发的复杂度。
软件开发人员只需要遵循RESTful规范并按照一定的内部定义开发外部接口,就能形成像螺丝刀刀头一样轻便的接口并对外提供服务。现在的很多项目中,无论是服务器端和服务器端的调用,还是前端和服务器端的调用,通常会采用RESTful风格来设计接口。
对于测试工程师来说,RESTful风格的接口使用的仍是之前的访问模式,它们同样是HTTP接口&