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