当前位置: 首页 > 文档资料 > EmberJS 入门教程 >

自定义适配器(Customizing Adapters)

优质
小牛编辑
135浏览
2023-12-01

Ember.js适配器指定如何在后端数据存储中保存数据,例如URL格式和REST API标头。 默认的Ember适配器包含一些REST API的内置假设。 这些假设有助于更轻松,更好地构建Web应用程序。

可以使用以下命令创建适配器 -

ember generate adapter adapter-name

运行上面的命令时,它将显示以下行 -

import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend ({
   // code goes here
});

Ember数据具有以下内置适配器 -

  • DS.Adapter - 它是Ember.js中没有功能的基本适配器。

  • DS.JSONAPIAdapter - 它是一个默认适配器,通过XHR传输JSON,与HTTP服务器连接并遵循JSON API约定。

  • DS.RESTAdapter - 用于通过使用您的商店与HTTP服务器通信,该商店通过XHR传输JSON。

JSONAPIAdapter URL约定

JSONAPIAdapter根据模型名称指定URL。

例如 -

store.findRecord('mypost', 1).then(function(myfunc) {
});

如果您通过ID请求MyPost,JSONAPIAdapter会将GET请求发送到/ myposts/1。 可以对JSONAPIAdapter中的记录使用以下操作 -

S.No.行动HTTP动词网址
1FindGET/myposts/123
2Find AllGET/myposts
3UpdatePATCH/myposts/123
4CreatePOST/myposts
5DeleteDELETE/myposts/123

端点路径自定义

可以使用具有特定url名称空间的namespace属性来自定义端点路径。

import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend ({
   namespace: 'api/1'
});

如果您请求myval model ,那么它将显示URL为http://emberjs.com/api/1/myval/1

主机定制

您可以使用适配器上的host属性指定新域 -

import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend ({
   host: 'https://api.mysite.com'
});

如果您请求myval模型,则会将URL显示为http://api.mysite.com/myval/1

路径定制

JSONAPIAdapter通过复制和破译模型名称来生成路径名。 如果此行为未确认后端,则可以覆盖pathForType方法。

import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend ({
   pathForType: function(type) {
      return Ember.String.underscore(type);
   }
});

标头定制

可以通过在JSONAPIAdapter的头对象上提供键/值对来自定义标头,并且Ember数据将发送键/值对以及每个ajax请求。

import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend ({
   headers: {
      'API_KEY': 'secret key',
      'ANOTHER_HEADER': 'header value'
   }
});

创作适配器

可以使用defaultSerializer适配器指定序列化程序,该适配器仅在未定义特定序列serializer:applicationserializer:application时使用。 它可以写成 -

import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend ({
   defaultSerializer: '-default
});