Emberjs-model-customize-adapter

提供:Dev Guides
移動先:案内検索

EmberJS-アダプターのカスタマイズ

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 -これは、HTTPサーバーとインターフェイスし、XHRを介してJSONを転送することによってJSON API規則に従うデフォルトのアダプターです。
  • DS.RESTAdapter -JSONをXHR経由で転送するストアを使用してHTTPサーバーと通信するために使用されます。

JSONAPIAdapter URLの規則

JSONAPIAdapterは、モデル名に基づいてURLを指定します。

例えば-

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

IDでMyPostを要求すると、JSONAPIAdapterはGETリクエストを/myposts/1に送信します。 以下のアクションは、JSONAPIAdapterのレコードで使用できます-

S.No. Action HTTP Verb URL
1 Find GET /myposts/123
2 Find All GET /myposts
3 Update PATCH /myposts/123
4 Create POST /myposts
5 Delete DELETE /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*として表示されます。

ホストのカスタマイズ

あなたは、アダプタのホストプロパティを使用して、新しいドメインを指定することができます-

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'
   }
});

オーサリングアダプター

特定のシリアライザーまたは_serializer:application_が定義されていない場合にのみ使用される_defaultSerializer_アダプターを使用して、シリアライザーを指定できます。 それは次のように書くことができます-

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   defaultSerializer: '-default
});