RESTAdapter对服务器响应的期望以及服务器期望的请求是什么?

时间:2015-02-20 03:11:40

标签: django ember.js ember-data

我使用的是Django REST框架,而不是Rails(它似乎有几个神奇的宝石可以让所有东西迅速与Ember一起工作)而且我一直在努力弄清楚Ember是如何预期的。我使用的是Ember CLI,因此我也使用了Ember数据。

当我只是检索对象或对象数组时,文档仅说明了典型的GET用法。文档说明:

  

JSON有效负载应该是包含根属性

内的记录的对象

关于惯例:

  

JSON有效负载中的属性名称应该是Ember.js模型中属性的camelCased版本。

没问题。

1。但是,如果出现错误,API应如何响应?

好的,因此文档还说明您可以使用ajaxError检查jqXHR状态是否有错误,然后为记录返回已填充的DS.Error。但是,我应该如何返回不同类型的错误。例如,让我们说用户会话现在无效,因此服务器无法按要求删除记录。

2。 Ember将如何提交请求?

总的来说,我对REST很陌生。我认为Ember只是使用适当的动词来进行它想要的动作:GET,POST,PUT,DELETE。我认为很清楚它会将所有模型的字段发送给POST一个新的,但DELETE怎么样? Ember会发送所有记录还是仅删除ID以删除对象?

1 个答案:

答案 0 :(得分:1)

通常,只要打开浏览器开发工具并查看网络请求,您就可以看到Ember提出的请求。

Ember数据喜欢使用api来回应错误哈希,如下所示:

{"errors":{"title":["can't be blank"]}}

然后只要定义一个函数来处理错误情况:

Ember.Controller.extend({
  actions: {
    deleteUser: function() {
      var user = this.model;
      function success() {
        // do something cool? 
      }

      function failure() {
        user.rollback();    
      }

      user.destroyRecord().then(success, failure);
    }
  }
});

然后将自动填充user.errors,您可以在模板中执行if user.errors。