restful是一种接口规范,接口定义符合这种规范的架构就是restful架构。
简单的说restful就是通过url定位资源,通过http动词(get、post、delete、put等)来描述操作。
使用restful的好处:
1、用来统一接口,web、ios、android都可以使用同一套api。
2、不用为接口写接口说明,通过读restful规范定义的具有描述性的接口就能知道接口的作用。
restful规范定义接口的规则:
1、客户端发送的请求必须是动词+宾语
2、宾语必须是名词
3、动词是5种http方法(get、post、put、delete、patch)
等...
restful的缺点:
无法做到pc端和移动端的接口复用。
pc端的数据相比移动端的数据要多很多,移动端采用pc端的接口会增加很多额外的请求,对性能有很大的影响。
GraphQL的出现解决了这个问题,它是api查询语言,基于数据类型来执行查询数据的服务端运行时。客户端需要什么数据服务端就返回什么数据,没有冗余。
参考资料:
https://www.zhihu.com/question/28557115
http://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html