EmberJS - 适用于各种模型的动态命名空间

时间:2016-05-10 13:35:40

标签: javascript ember.js

我在EmberJS和RESTful API中有一个应用程序。问题是某些资源需要动态URL。

例如地址是联系人的一部分(有一些联系人ID)。因此,在 API 中添加地址的路线是

/api/contacts/3/addresses

所以我想在Ember的JSONAPIAdapter中查询地址。我怎么能很好地做到这一点?我用:

this.store.adapterFor('application').set('namespace', "api/contacts/3");

但它很丑,我应该在每个型号之前使用它,这是非常糟糕的解决方案。我是否需要重写整个JSONAPIAdapter,还是有其他解决方案?

1 个答案:

答案 0 :(得分:0)

这不是JSONAPI!但是让我们看一下。

这看起来像一个关系解决。所以你有一个地址,并希望找到它的联系人。最简单的方法就是遵循JSONAPI。很明显,必须在原始文件中指定关系的链接。因此,您的联系回复应如下所示:

{
    data: [{
        id: 3,
        type: 'contact',
        relationships: {
            addresses: {
                links: {
                    related: '/api/contacts/3/addresses'
                }
            }
        }
    }]
}

然后一切都开箱即用! 如果您的响应在此时没有遵循JSONAPI,您可以在序列化程序中修复此问题。但如果您根本不是JSONAPI,则应使用RESTAdapter / RESTSerializer。在那里你可以覆盖urlForFindHasMany