Network usage
getOne
example
import { Collection, Model } from '@datx/core'; import { config, jsonapiCollection } from '@datx/jsonapi'; config.baseUrl = 'https://example.com/'; class MyCollection extends jsonapiCollection(Collection) {} const collection = new MyCollection(); collection .getOne('event', 1) // This will make a GET request to https://example.com/event/1 .then((response) => { const event = response.data; console.log(event.id); // 1 });
getMany
example
import { Collection, Model } from '@datx/core'; import { config, jsonapiCollection } from '@datx/jsonapi'; config.baseUrl = 'https://example.com/'; class MyCollection extends jsonapiCollection(Collection) {} const collection = new MyCollection(); collection .getMany('event') // This will make a GET request to https://example.com/event .then((response) => { const events = response.data; console.log(events.length); // e.g. 5 console.log(events[0].id); // e.g. 1 });
request
example
The request method can be used if something (url, method, etc.) is not standard:
import { Collection, Model } from '@datx/core'; import { config, jsonapiCollection } from '@datx/jsonapi'; config.baseUrl = 'https://example.com/'; class MyCollection extends jsonapiCollection(Collection) {} const collection = new MyCollection(); collection .request('event/1/like', 'POST') // This will make a POST request to https://example.com/event/1/like .then((response) => { // The expected response of the API call is still a valid JSON API response const event = response.data; });
Pagination example
import { Collection, Model } from '@datx/core'; import { config, jsonapiCollection } from '@datx/jsonapi'; config.baseUrl = 'https://example.com/'; class MyCollection extends jsonapiCollection(Collection) {} const collection = new MyCollection(); // Get a list of all users if the API requires pagination // Note: In normal usage, you should also have some error handling async function getAllUsers() { const users = []; let response = await collection.getMany('user'); // GET https://example.com/user users.push(...response.data); while (response.next) { response = await response.next(); users.push(...response.data); } return users; }