Provides REST and JSON:API Implementations of the legacy Adapter Interface
Caution
⚠️ This is LEGACY documentation for a feature that is no longer encouraged to be used. If starting a new app or thinking of implementing a new adapter, consider writing a Handler instead to be used with the RequestManager
This package is currently installed when installing ember-data
.
If installing @ember-data/
packages individually install using your javascript package manager of choice. For instance with pnpm
pnpm add @ember-data/adapter
If using ember-data
no additional setup is necesssary.
Note When using ember-data the below configuration is handled for you automatically.
To use legacy adapters you will need to have installed and configured the LegacyNetworkHandler from @ember-data/legacy-compat
pnpm add @ember-data/legacy-compat
import Store, { CacheHandler } from '@ember-data/store';
import RequestManager from '@ember-data/request';
import { LegacyNetworkHandler } from '@ember-data/legacy-compat';
export default class extends Store {
requestManager = new RequestManager();
constructor(args) {
super(args);
this.requestManager.use([LegacyNetworkHandler]);
this.requestManager.useCache(CacheHandler);
}
}
To use as either a per-type or application adapter, export one of the
implementations within the adapters/
directory of your app as appropriate.
For instance, to configure an application adapter to use JSON:API
app/adapters/application.ts
export { default } from '@ember-data/adapter/json-api';
By default adapters are resolved by looking for an adapter with the same name in the adapters folder as the type
given to store.adapterFor(<type>)
, falling back to looking for an adapter named application
.
Overriding Resolution
If you would like to avoid using resolver semantics and your application has only one or a few adapters, you may ovveride the adapterFor
hook on the store.
import Store from '@ember-data/store';
import Adapter from '@ember-data/adapter/json-api';
class extends Store {
#adapter = new Adapter();
adapterFor() {
return this.#adapter;
}
}
For the full list of APIs available read the code documentation for @ember-data/adapter. You may also be interested in learning more about EmberData's Adapter Interface.