使用 Backbone 时, 没有对应 Model 的 HTTP 请求如何处理更好?

题叶
  • 17.3k

项目中有出现一些没有对应 Model 的 API 接口,
通常使用是在 View 的方法里, 直接用 $.ajax({}) 的写法来处理,

不过这样代码可读性非常差, 我只能想到对 ajax 接口稍微做点封装简化一些书写.
有没有好的方案可以处理这些接口?

我觉得 Backbone 对 Model 的请求, 通过事件对 API 进行了抽象, 书写更清晰,
那我有没有必要强制对这些设定一个 Model 呢?

回复
阅读 3.8k
2 个回答

个人觉得应该,如果你要追求规范的话。

我注意到,你在这个问题的标签里加了restful。那么意味着你的服务器是支持REST架构的。那么对于REST架构风格,其一大特点就是“一切皆为资源“,那么无论你是get、post、put或是delete,都是对资源的操作。而这些资源,抽象到你的代码中就是数据模型。所以我相信无论你的API接口是实现什么功能,都可以抽象出一个数据模型。既然可以,为什么不呢?虽然可能会增加你的代码量,但是对于代码的可读性,已经后期的可维护性来说,我觉得是值得的。

loddit
  • 4
新手上路,请多包涵

是否要为了优雅使用 API 而用 Model ,我觉得还是要具体情况:
比如用户登录,获取用户状态,我就在后端实现一个 /current_user 的 RESTfull API ,
POST 就是登录动作,GET 就是获取当前用户, DELETE 就是退出。

前端里实现类似:
App.currentUser = new User({url:'/current_user'})
然后 View 监听这个 App.currentUser 就可以避免手写 ajax 回调啦

宣传栏