REST
Introduction
REST implementation provides multiple dependencies implementations to support read/write interactions with JSON REST data sources.
Implementations
makeJsonRestAdapter
This implementation of the adapter will execute context through HTTP requests
using the
fetch
API.
makeJsonRestAdapter
and makeRestAdapterWith
use
makeHttpAdapterWith
.
Usage
import { paramsSerializer } from '@foscia/http';
import { makeRestAdapterWith, makeJsonRestAdapter } from '@foscia/rest';
// Using blueprint (preconfigured with sensible defaults).
const { adapter } = makeJsonRestAdapter({
/* ...configuration */
});
// Using constructor (no default configuration provided).
const { adapter } = makeRestAdapterWith({
serializeParams: paramsSerializer,
/* ...configuration */
});
const response = await adapter.execute({
/* ...context */
});
Configuration
makeJsonRestAdapter
and makeRestAdapterWith
extend its configuration object from:
Name | Type | Description |
---|---|---|
includeParamKey | string | null | Define the query parameter to append when relationships inclusion is requested through include . Default to include . |
Defined in
makeJsonRestDeserializer
This implementation of the deserializer extract model instances from object documents.
makeJsonRestDeserializer
extends the
makeDeserializerWith
.
Deserialized REST document example
Usage
import { makeJsonRestDeserializer } from '@foscia/rest';
// Using blueprint (preconfigured with sensible defaults).
const { deserializer } = makeJsonRestDeserializer({
/* ...configuration */
});
const { instances } = await deserializer.deserialize(data, {
/* ...context */
});
Configuration
makeJsonRestDeserializer
extends its configuration object from:
Name | Type | Description |
---|---|---|
pullIdentifier | (record: Record, context: {}) => Awaitable<DeserializerRecordIdentifier> | Extract identifier (type and ID) from record. |
pullAttribute | (record: Record, deserializerContext: DeserializerContext, extract: Extract) => Awaitable<unknown> | Extract raw attribute value from record. |
pullAttribute | (record: Record, deserializerContext: DeserializerContext, extract: Extract) => Awaitable<Arrayable<Record> | null | undefined> | Extract raw relation value from record. |
Defined in
makeJsonRestSerializer
This implementation of the serializer creates a REST documents from model instance and relations.
makeJsonRestSerializer
extends the
makeSerializerWith
.
Serialized REST document example
Usage
import { makeJsonRestSerializer } from '@foscia/rest';
// Using blueprint (preconfigured with sensible defaults).
const { serializer } = makeJsonRestSerializer({
/* ...configuration */
});
const data = await serializer.serializeInstance(instance, {
/* ...context */
});
Configuration
makeJsonRestSerializer
extends its configuration object from:
Name | Type | Description |
---|---|---|
serializeType | boolean | Append the instance type to the serialized object. |