Class Adapter
publicAn adapter is an object that receives requests from a store and
translates them into the appropriate action to take against your
persistence layer. The persistence layer is usually an HTTP API but
may be anything, such as the browser's local storage. Typically the
adapter is not invoked directly instead its functionality is accessed
through the store
.
⚠️ CAUTION you likely want the docs for
Adapter as extending this abstract class is unnecessary.
Creating an Adapter
Create a new subclass of Adapter
in the app/adapters
folder:
import Adapter from '@ember-data/adapter';
export default Adapter.extend({
// ...your code here
});
Model-specific adapters can be created by putting your adapter
class in an app/adapters/
+ model-name
+ .js
file of the application.
import Adapter from '@ember-data/adapter';
export default Adapter.extend({
// ...Post-specific adapter code goes here
});
Adapter
is an abstract base class that you should override in your
application to customize it for your backend. The minimum set of methods
that you should implement is:
findRecord()
createRecord()
updateRecord()
deleteRecord()
findAll()
query()
To improve the network performance of your application, you can optimize your adapter by overriding these lower-level methods:
findMany()
For an example of the implementation, see RESTAdapter
, the
included REST adapter.
coalesceFindRequests public
Defined in ../packages/adapter/src/index.ts:646
By default the store will try to coalesce all findRecord
calls within the same runloop
into as few requests as possible by calling groupRecordsForFindMany and passing it into a findMany call.
You can opt out of this behaviour by either not implementing the findMany hook or by setting
coalesceFindRequests to false.