EmberJS - Personnalisation des adaptateurs

L'adaptateur Ember.js spécifie la manière dont les données sont conservées dans le magasin de données principal, comme le format d'URL et les en-têtes de l'API REST. L'adaptateur par défaut d'Ember inclut certaines hypothèses intégrées pour l'API REST. Ces hypothèses aident à créer une application Web beaucoup plus facilement et mieux.

L'adaptateur peut être créé à l'aide de la commande suivante -

ember generate adapter adapter-name

Lorsque vous exécutez la commande ci-dessus, elle affichera les lignes suivantes -

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   // code goes here
});

Les données Ember ont les adaptateurs intégrés suivants -

  • DS.Adapter - Il s'agit d'un adaptateur de base sans fonctionnalité dans Ember.js.

  • DS.JSONAPIAdapter - Il s'agit d'un adaptateur par défaut qui s'interface avec le serveur HTTP et suit les conventions de l'API JSON en transférant JSON via XHR.

  • DS.RESTAdapter - Il est utilisé pour communiquer avec le serveur HTTP en utilisant votre magasin qui transfère le JSON via XHR.

Conventions d'URL JSONAPIAdapter

Le JSONAPIAdapter spécifie les URL en fonction du nom du modèle.

Par exemple -

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

Le JSONAPIAdapter enverra la requête GET à / myposts / 1, si vous demandez MyPost par ID. Les actions suivantes peuvent être utilisées sur les enregistrements dans JSONAPIAdapter -

S.No. action Verbe HTTP URL
1 Trouver AVOIR / myposts / 123
2 Trouver tout AVOIR /mes publications
3 Mise à jour PIÈCE / myposts / 123
4 Créer PUBLIER /mes publications
5 Effacer SUPPRIMER / myposts / 123

Personnalisation du chemin des points de terminaison

Le chemin d'accès au point de terminaison peut être personnalisé à l'aide de la propriété d' espace de noms avec un espace de noms d'URL spécifique.

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   namespace: 'api/1'
});

Si vous demandez le modèle myval , il affichera l'URL sous la formehttp://emberjs.com/api/1/myval/1.

Personnalisation de l'hôte

Vous pouvez spécifier le nouveau domaine à l'aide de la propriété hôte sur l'adaptateur -

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   host: 'https://api.mysite.com'
});

Si vous demandez le modèle myval , il affichera l'URL sous la formehttp://api.mysite.com/myval/1.

Personnalisation du chemin

Le JSONAPIAdapter génère le nom du chemin en mettant au pluriel et en dasherizing le nom du modèle. Vous pouvez remplacer la méthode pathForType , si ce comportement ne confirme pas le backend.

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   pathForType: function(type) {
      return Ember.String.underscore(type);
   }
});

Personnalisation des en-têtes

Les en-têtes peuvent être personnalisés en fournissant les paires clé / valeur sur l'objet d'en-têtes de JSONAPIAdapter et les données Ember enverront une paire clé / valeur avec chaque requête ajax.

import DS from 'ember-data';

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

Adaptateurs de création

Le sérialiseur peut être spécifié à l'aide de l' adaptateur defaultSerializer qui est utilisé uniquement lorsque sérialiseur ou sérialiseur spécifique : application n'est pas défini. Il peut s'écrire -

import DS from 'ember-data';

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