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. |