2017-08-04 11 views
1

ember cliでサブディレクトリモデルを作成することが可能であることに気付きました。そうすることができますEmberサブディレクトリモデル対アダプタ変更?

ember g model log/type1-log 

これは、内部にtype1-logモデルを持つログディレクトリを作成します。私がこれを試みた理由は、私のAPI構造のものでした。

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

当初、私はember g model type1-logをしていたが、そのモデルは/api/v1/type1-logにAPI要求をしていました。私はそれがapi/v1/logs/type1-logをやっていたかった。

Emberがサブディレクトリモデルをサポートしていますか、実際にはURLを変更するためにアダプタを更新する必要がありますか?

私のAPIは今後ログを要求するだけではありませんので、アダプターの名前空間を/api/v1/logsに設定したくありません。

答えて

0

アダプタを使用してエンドポイントのカスタマイズをカスタマイズできます。あなたのケースでは、モデル固有のアダプタを作成し、それをカスタマイズするためにnamespaceプロパティを使用することができます。残り火ガイドから

ember g adapter type1-log 

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

あなたが他の人よりも、そのバックエンドと通信するための例外的なルールを持って一つのモデルを持っている場合は、モデル固有のアダプタを作成することができますコマンドemberを実行すると、adapter adapter-nameが生成されます。たとえば、ember generate adapter postを実行すると、app/adapters/post.jsファイルが作成されます。

参考:
https://guides.emberjs.com/v2.14.0/models/customizing-adapters/ https://emberjs.com/api/ember-data/2.14/classes/DS.JSONAPIAdapter

+0

これは常にunwatedあるAPI/V1 /ログに行くために私のAPIを強制します。私はもう少し質問を明確にします。 – Taztingo

+0

アダプタは、ember-dataのURLを指定します。これは、モデル固有の名前空間のカスタマイズのアプローチは、正しいIMHOです。 URLの生成を制御したい場合は、 'urlForRequest'や、あなたに適したその他のメソッドのために、アダプタから特定のメソッドを上書きする必要があります。 – kumkanillam

+0

だから私は各モデルのアダプタを持っているはずです...?各自が独自のカスタム名前空間を持っていますか? – Taztingo

関連する問題