私はproduct
モデルと/products/
ルートを持っていますが、エバーデータはhost/api/v1/products
の代わりにhost/api/v1/product
にリクエストを送信します - これはなぜですか?Emberデータ複数シリアライザ
また、個々の製品フェッチに複数のエンドポイントを使用するにはどうすればよいですか?すなわち:host/api/v1/product/1
私はproduct
モデルと/products/
ルートを持っていますが、エバーデータはhost/api/v1/products
の代わりにhost/api/v1/product
にリクエストを送信します - これはなぜですか?Emberデータ複数シリアライザ
また、個々の製品フェッチに複数のエンドポイントを使用するにはどうすればよいですか?すなわち:host/api/v1/product/1
チェックbuildURL方法
By default, it pluralizes the type's name (for example, 'post'
becomes 'posts' and 'person' becomes 'people'). To override the
pluralization see [pathForType](#method_pathForType).
とサブ方法(https://github.com/emberjs/data/blob/v2.6.1/addon/-private/adapters/build-url-mixin.js#L54)
switch (requestType) {
case 'findRecord':
return this.urlForFindRecord(id, modelName, snapshot);
case 'findAll':
return this.urlForFindAll(modelName, snapshot);
case 'query':
return this.urlForQuery(query, modelName);
case 'queryRecord':
return this.urlForQueryRecord(query, modelName);
case 'findMany':
return this.urlForFindMany(id, modelName, snapshot);
case 'findHasMany':
return this.urlForFindHasMany(id, modelName, snapshot);
case 'findBelongsTo':
return this.urlForFindBelongsTo(id, modelName, snapshot);
case 'createRecord':
return this.urlForCreateRecord(modelName, snapshot);
case 'updateRecord':
return this.urlForUpdateRecord(id, modelName, snapshot);
case 'deleteRecord':
return this.urlForDeleteRecord(id, modelName, snapshot);
default:
return this._buildURL(modelName, id);
}
のリストがありますので、あなたの目的
Updateのいずれかを再定義することができます下のアダプタ:
import JSONAPIAdapter from 'ember-data/adapters/json-api';
export default JSONAPIAdapter.extend({
pathForType: function(type) {
var camelized = Ember.String.camelize(type);
return Ember.String.singularize(camelized);
}
});