Skip to content

Files

Latest commit

294f938 · Apr 14, 2023

History

History
This branch is 1230 commits behind emberjs/data:main.

adapter

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Oct 24, 2022
Mar 16, 2023
Apr 8, 2023
Apr 2, 2023
Apr 2, 2023
Mar 29, 2023
Dec 8, 2022
Apr 2, 2023
Apr 2, 2023
Apr 14, 2023
Mar 26, 2023

EmberData Adapter EmberData Adapter

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

Installation

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

🚀 Setup

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);
  }
}

Usage

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.