14

我想在我正在构建的项目中使用 ember-data,但我正在使用的 API 不遵循 REST 约定。

例如,所有 HTTP 请求都是 POST 并且端点的命名约定对于它们执行的操作是唯一的。例如/api/thing/retrieve,需要我发布一个带有一些参数的 JSON 对象,并返回一个“东西”给我。

我是否使用 Restful 适配器并重新打开类并重新定义各种查找功能?

或者

我必须制作一个新的适配器吗?

或者

我应该放弃 ember-data 并在我的模型(甚至控制器)中使用 ajax 吗?

我不确定我将如何处理这些选项中的任何一个。任何指导将不胜感激。

4

2 回答 2

1

我在这个主题上看到的唯一信息是下面链接的 Discourse 人员的一篇文章。

http://eviltrout.com/2013/03/23/ember-without-data.html

我个人在文章中玩弄了reopenClass 方法,如果我有一个我经常调用的一致但非REST API,我可能会将它放入mixin 或类似的东西中。

于 2013-03-27T16:46:00.520 回答
0

我想说的是,如果您的 API 是一致的(可靠的),那么您应该创建/扩展 DS.Adapter(而不是 DS.RESTAdapter)以实现您的规范。

所有的钩子都在那里,您只需定义一次所有模型都可以使用的它。

我还会通读基本适配器代码 - (https://github.com/emberjs/data/blob/master/packages/ember-data/lib/adapters/basic_adapter.js)它可能是你更好的起点然后是 DS.Adapter。

如果您的 API 不可靠,那么您最好只根据需要使用 $.ajax() 调用。但是,在我看来,这并不能很好地扩展。

查看基本适配器时值得一读的链接:http: //emberjs.com/blog/2013/03/22/stabilizing-ember-data.html

最后一点,构建 ORM 甚至比 ORM 更简单的东西并不是一项简单的任务,对我来说,这使得使用 ember-data 值得付出努力,是的,有时会很痛苦。

于 2013-03-27T20:39:22.827 回答