很多人以为
/users?id=1
改成
/users/1
就是Restful了
Restful是个风格
不过不是改个route, controller样貌就叫Restful
以前自己在看的时候
比较难理解的个人觉得有两个地方
第一就是资源点观念
先来讲讲上面的观念差异
/users?id=1
用资源点的观念来看
就是资源点在/users
我要从users中query出id是1的user
所以说不是有parameter的就不是Restful
一样能用资源点的观念解释
/users/1
这个1代表什么自行定义吧
如果1代表的是group的话呢
users/1就是users被定义于group 1的资源点
可能也是多数也可以再用parameter query它
就像users/1?age<10
资源点就是这样的概念
所以不是单纯route的样貌就决定是不是Restful
当然多数我们在设计时还是习惯会多个提醒
弄成这样/users/group/1
照这样讲好像怎样解释都行的通?
当然不是这样子
资源点要是名词
当有route被设计成
/get-user-password?account=abc
这样的设计就偏离Restful了
因为带有动词的意味
第二个比较难理解就是无状态
无状态的定义就是你每次的request
都跟你之前的request无关
说的这么复杂直接讲白点就是
不要用session啦
过往设计可能会有第一次request
存点资料在session
下次request可能拿来用
不过这就背离Restful啦
而无状态的好处是很明显的
因为没有状态server只是取得资源点的地方
所以可以轻松的达成
多台Server提供服务
你每次的request连接到哪一台都没差
要判断你的设计是不是无状态的
单纯就考量这一点即可
能否Server多开后
同一使用者的Request
就算轮著一台一台戳也不会有问题
其他的观念
个人觉得都算容易理解也不用赘述了
当然由于Restful没明确指示做法
这是我个人解读
觉得有误也请指正了