文/小码农说说吧
说到RESTFUL,我们都很熟悉。我们都想介绍一下它是什么。也许我们只是停留在听到或者看到的阶段。一向喜欢用通俗语言消化知识的小马自然不会放过。让我们用对话的方式来谈论它,以帮助我们理解。

什么是佩奇的,什么是宁静的
为什么在这里介绍我们的小猪?因为RESTFUL这个词就像佩吉的一样。认识的人肯定熟悉,不认识的人就是朋友。你有很多问号吗?看看百科怎么说。
RESTFUL是一种网络应用的设计风格和开发方法。基于HTTP,可以用XML格式或者JSON格式定义。RESTFUL适用于移动互联网厂商作为服务使能接口的场景,实现第三方OTT调用移动网络资源的功能。动作类型是添加、改变和删除被调用的资源。
什么?很长一段时间,这只是一种设计风格。试着这么理解,就是你听说过建筑的复古风,欧美风之类的,大致意思差不多。如果不按照设计风格建别墅,可以直接以平房的形式建,不属于任何风格。这就是为什么我们通常的API开发不遵循RESTFUL风格的原因。REST指的是一组架构约束和原则,满足这些约束和原则的应用或设计是RESTful的。
宁静的风格
既然描述了一种设计风格,那什么样的味道啊,不,什么样的界面规范才符合它的风格呢?让我们先来看看RESTFUL的两个特性:
1.每个URI代表一种资源;
2.客户端使用GET、POST、PUT、DELETE四个动词对服务器资源进行操作:GET用于获取资源,POST用于创建新资源,PUT用于更新资源,DELETE用于删除资源;

总的来说,URI是我描述的一种资源。该请求基于HTTP。GET、POST、PUT和DELETE4是四个服务器端资源,分别代表四种操作模式:添加、删除和检查。比如我现在要实现一个相册和文章系统的接口,就符合RESTFUL。
题外话,通常我们的服务器默认只支持GET和POST请求。有同学说GET用于等幂,POST用于非等幂。当然,这里判断幂等只是基于多个请求的结果是否一致。那么GET,POST,PUT,DELETE只有POST是非幂等的。
RESTFUL基于HTTP请求模式
相信很多同学一直认为HTTP请求只是通过POST和GET发出的。既然RESTFUL是基于HTTP请求的,那就来点好玩的吧。
Pony写了一小段PHP代码,放在web服务器上。就是单独获取http请求的参数,有的DELETE可能还会把参数放在正文里。
好了,我们借助邮差工具做一个GET请求,发现一切都是那么和平。
所以,很自然,我们必须做点什么。我们提出了删除请求,但被拒绝。这里是配置nginx服务器的支持。通常,默认情况下只支持POST和GET。
Dav_methods删除配置支持它。注意,前方高能。

请求运行后,资源文件全部消失。
运行之前运行之后这让小马很害怕,于是他查了一下定义:删除——请求服务器删除请求——URI标记的资源。并且放可以上传的文件。好了,这四个请求只是语义上的区别。你怎么能删除文件?自然会和安全联系在一起。
宁静的优势
为什么选择这种RESTFUL风格?陆平时弹键盘就是为了做这个。闻起来不香吗?很明显,RESTFUL风格在建筑上属于欧美风格,听起来高大上很多,和我们山寨的建筑风格相比是统一规范的。认真来说,优点是:轻量级,直接基于http的GET、POST、PUT、DELETE,不需要任何其他消息协议;面向资源,一目了然,不言自明。
我只是觉得相对于我们通常的山寨式API风格,只有统一的标准,更加一目了然。你觉得RESTFUL怎么样?


