我使用的API在最后没有任何/post
或任何内容。
但是Ember会自动添加内容到我的网址末尾。这是代码:
App.Store = DS.Store.extend({
revision: 12,
adapter: DS.RESTAdapter.create({
url: 'http://api.my-api.com/v1/products(name=my-name)&show=sku,name&Key=mYaPiKeY123'
})
});
App.Offer = DS.Model.extend({
name: DS.attr('string'),
sku: DS.attr('string')
});
App.ApplicationRoute = Ember.Route.extend({
model: function () {
return App.Offer.find();
}
});
Ember将/offers
添加到url
的末尾,当然我得到了404。
答案 0 :(得分:1)
适配器的网址专门用于API的基本网址,例如: http://api.my-api.com/v1/
。所有资源端点URL都将从您要求的模型中推断出来。例如,在使用App.Offer.find()
时,它从RESTAdapter的假定约定中推断出资源位于http://api.my-api.com/v1/offers
。如果您需要构建自定义网址和/或您无法控制API的网址方案,则可以创建自己的RESTAdapter(或只是常规适配器)来处理自定义网址。
如果您希望Ember Data在请求资源时使用查询参数,只需使用类似this.store.findQuery('offer', {show: 'sku,name', another: 'parameter'});
的内容,它就会自动将它们转义/序列化到您的URL中。
在另一主题上,将您的API密钥包含在您的网址中并不是一个好主意,因为他们非常容易受到曝光: - )