Class DS.RESTAdapter
Extends: | DS.Adapter |
---|---|
Uses: | DS.BuildURLMixin |
Defined in: | addon/adapters/rest.js:33 |
Module: | ember-data |
coalesceFindRequests
Module: | ember-data |
---|
Defined in addon/adapters/rest.js:351
By default the RESTAdapter will send each find request coming from a store.find
or from accessing a relationship separately to the server. If your server supports passing ids as a query string, you can set coalesceFindRequests to true to coalesce all find requests within a single runloop.
For example, if you have an initial payload of:
{ post: { id: 1, comments: [1, 2] } }
By default calling post.get('comments')
will trigger the following requests(assuming the comments haven't been loaded before):
GET /comments/1 GET /comments/2
If you set coalesceFindRequests to true
it will instead trigger the following request:
GET /comments?ids[]=1&ids[]=2
Setting coalesceFindRequests to true
also works for store.find
requests and belongsTo
relationships accessed within the same runloop. If you set coalesceFindRequests: true
store.findRecord('comment', 1); store.findRecord('comment', 2);
will also send a request to: GET /comments?ids[]=1&ids[]=2
Note: Requests coalescing rely on URL building strategy. So if you override buildURL
in your app groupRecordsForFindMany
more likely should be overridden as well in order for coalescing to work.
defaultSerializer
Module: | ember-data |
---|
Inherited from DS.Adapter addon/adapter.js:65
If you would like your adapter to use a custom serializer you can set the defaultSerializer
property to be the name of the custom serializer.
Note the defaultSerializer
serializer has a lower priority than a model specific serializer (i.e. PostSerializer
) or the application
serializer.
app/adapters/django.js
import DS from 'ember-data'; export default DS.Adapter.extend({ defaultSerializer: 'django' });
headers
Module: | ember-data |
---|
Defined in addon/adapters/rest.js:435
Some APIs require HTTP headers, e.g. to provide an API key. Arbitrary headers can be set as key/value pairs on the RESTAdapter
's headers
object and Ember Data will send them along with each ajax request. For dynamic headers see headers customization.
app/adapters/application.js
import DS from 'ember-data'; export default DS.RESTAdapter.extend({ headers: { 'API_KEY': 'secret key', 'ANOTHER_HEADER': 'Some header value' } });
host
Module: | ember-data |
---|
Defined in addon/adapters/rest.js:418
An adapter can target other hosts by setting the host
property.
app/adapters/application.js
import DS from 'ember-data'; export default DS.RESTAdapter.extend({ host: 'https://api.example.com' });
Requests for the Post
model would now target https://api.example.com/post/
.
namespace
Module: | ember-data |
---|
Defined in addon/adapters/rest.js:400
Endpoint paths can be prefixed with a namespace
by setting the namespace property on the adapter:
app/adapters/application.js
import DS from 'ember-data'; export default DS.RESTAdapter.extend({ namespace: 'api/1' });
Requests for the Post
model would now target /api/1/post/
.
© 2020 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
https://api.emberjs.com/ember-data/2.18/classes/DS.RESTAdapter/properties