Skip to content

Documentation / @warp-drive/utilities / json-api

json-api

This module provides utilities for working with {json:api} APIs with WarpDrive

Usage

Request builders are functions that produce Fetch Options. They take a few contextual inputs about the request you want to make, abstracting away the gnarlier details.

For instance, to fetch a resource from your API

ts
import { findRecord } from '@warp-drive/utilities/json-api';

const options = findRecord('ember-developer', '1', { include: ['pets', 'friends'] });
ts
{
  url: 'https://api.example.com/v1/ember-developers/1?include=friends,pets',
  method: 'GET',
    headers: <Headers>,
     // => 'Accept': 'application/vnd.api+json'
     // => 'Content-Type': 'application/vnd.api+json'
  op: 'findRecord';
  records: [{ type: 'ember-developer', id: '1' }]
}

Request builder output may be used with either RequestManager.request or Store.request.

ts
const data = await store.request(options);

Features

  • URLs are stable. The same query will produce the same URL every time, even if the order of keys in the query or values in an array changes.
  • URLs follow the most common {json:api} format (dasherized pluralized resource types)

Functions

Released under the MIT License.