带有Django REST Framwork JSON API的Ember JSONAPI适配器

时间:2018-12-02 16:11:38

标签: django api ember.js adapter json-api

我将EmberJSdjango一起使用。对于我的API,我想使用JSONAPI。为此,我安装了Django rest framework json api。在Ember中,我使用JSONAPIAdapter

当我的Ember应用尝试获取 / pointments / 时,一切都很好,并且

"type": "Appointment"

但是当我的Ember Store尝试保存约会时,它会转到正确的URL,但是

"type": "appointments"

经过一些测试,我得出结论,唯一有效的类型是“约会”,而不是“约会”,也不是“约会”或“约会”。

我不知道为什么Ember JSONAPIAdapter会这样做,但是有没有办法解决此问题?

1 个答案:

答案 0 :(得分:2)

JSON API规范本身并不关心类型是否为单数,复数,反斜线,下划线等。它与屈折规则无关。

但是Ember默认使用约定(JSON API spec的示例使用相同的约定)。 Ember的JSONAPIAdapter将默认对类型进行复数和反序列化。

重要的是,您的客户端和服务器使用相同的约定。我认为那是你的问题。

如果服务器使用其他约定,则可以自定义JSONAPIAdapter:

import DS from 'ember-data';
import { underscore } from '@ember/string';

export default DS.JSONAPIAdapter.extend({
  pathForType(type) {
    return underscore(type);
  }
});