做过不少系统架构,全栈、前后端一起设计,我认为至少在部分领域restful可以扔了。
第一个被淘汰的是URI风格,主要是现在都是纯JSON请求和返回,例如post一般情况下id都和JSON放一起提交了,就没URI的必要。然后既然post都润了,那get、put、delete也一样了。且在js代码里面单独为URI设置参数也不好看,现在代码一般如下:
post('/console/modify-user',{id:'abc',name:'张三'}).then(data=>{
//do something
{).catch(err=>{
//
})
还有个重要原因,现在用typescript,可以用url字串查找定义好的接口,实现代码联想。动态url就很讨厌了。
第二个是http方法风格,有人说是url太多了才需要restful风格,我们这个领域恰是因为同等原因放弃restful风格。我们的风格是调用路径尽可能短、url尽可能表述更多的信息,类似这个样子
import { post } from './ConsoleAPI'
import { post as srmPost } from './SrmAPI'
post('/console/modify-user',{id:'abc',name:'张三'}).then(data=>{
//do something
{).catch(err=>{
//
})
srmPost('/srm/modify-user',{id:'abc',name:'张三'}).then(data=>{
//do something
{).catch(err=>{
//
})
- 仅剩 get post。
- get post 都预定义好了url和对应的请求、返回类型,实现代码提示。
- url信息量大,能表述模块和具体的动作,阅读轻松。
- 调用路径短了,因为url即是方法名,少了无用封装。