为什么一些前端不喜欢 Restful Api?

发布时间 2023-10-23 23:44:11作者: China Soft

做过不少系统架构,全栈、前后端一起设计,我认为至少在部分领域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=>{
 //
})
  1. 仅剩 get post。
  2. get post 都预定义好了url和对应的请求、返回类型,实现代码提示。
  3. url信息量大,能表述模块和具体的动作,阅读轻松。
  4. 调用路径短了,因为url即是方法名,少了无用封装。
 
[捂脸]我也觉得URL短好处很多,post在一个事件的处理上不要太方便
 
 
 
相当于json rpc了,我也喜欢这种风格[大笑]