2017-08-04 2 views
1

J'ai remarqué qu'il est possible de créer des modèles de sous-répertoire avec ember cli. Je peux donc le faireModèles de sous-répertoire Ember vs changement d'adaptateur?

ember g model log/type1-log 

Cela crée un répertoire de journal avec le modèle type1-journal à l'intérieur. La raison pour laquelle j'ai essayé ceci était celle de ma structure API.

/api/v1/logs/ 
/api/v1/logs/type1-log 
/api/v1/logs/type2-log 
/api/v1/logs/type3-log 

Dans un premier temps, je faisais ember g model type1-log, mais ce modèle a été en train de faire des demandes de api à /api/v1/type1-log. Je voulais qu'il soit en train de faire api/v1/logs/type1-log.

Les sous-répertoires sont-ils pris en charge par Ember ou dois-je mettre à jour mon adaptateur pour modifier l'URL?

La demande de journaux n'est pas la seule chose que mon API va faire dans le futur, donc je ne veux pas mettre un espace de noms à /api/v1/logs dans l'adaptateur.

Répondre

0

Vous pouvez personnaliser la personnalisation du point de fin à l'aide de l'adaptateur. Donc, dans votre cas, je dirais que vous pouvez créer un adaptateur spécifique au modèle et utiliser la propriété namespace pour le personnaliser.

ember g adapter type1-log 

et

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

De guides Ember,

Si vous avez un modèle qui a des règles exceptionnelles pour communiquer avec son arrière-plan que les autres, vous pouvez créer un modèle adaptateur spécifique l'exécution de la commande ember génère un adaptateur nom-adaptateur. Par exemple, exécuter ember generate adapter post va créer le fichier .

Référence:
https://guides.emberjs.com/v2.14.0/models/customizing-adapters/ https://emberjs.com/api/ember-data/2.14/classes/DS.JSONAPIAdapter

+0

Cela forcerait mon API à aller toujours api/v1/logs qui est unwated. Je vais clarifier la question un peu plus. – Taztingo

+0

L'adaptateur est responsable de fournir l'URL pour les données de braises. C'est Adpater spécifique au modèle avec l'approche de personnalisation de l'espace de noms est correct à mon humble avis. Si vous voulez prendre le contrôle de la génération d'URL, alors vous devez écrire une méthode spécifique à partir de Adapter, pour 'urlForRequest' ou tout autre qui vous convient. – kumkanillam

+0

Donc, je devrais avoir un adaptateur pour chaque modèle alors ...? Chacun ayant son propre espace de noms personnalisé? – Taztingo