非RESTful环境中的Ember数据

时间:2013-03-21 17:56:50

标签: ember.js ember-data

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

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

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

OR

我是否必须制作新的适配器?

OR

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

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

2 个答案:

答案 0 :(得分:1)

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

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

我个人已经在文章中玩弄了reopenClass方法,如果我有一个我定期调用的一致但非REST的API,可能会把它放到mixin或其他东西中。

答案 1 :(得分: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值得付出努力,有时甚至是痛苦。