Saltearse al contenido

exportSnapshot

La función exportSnapshot obtiene el snapshot de contenido de un proyecto desde el endpoint de exportación y se resuelve con el ContentSnapshot ya parseado. Valida la estructura y la versión de esquema del snapshot y — cuando le pasas un snapshotPath — además escribe el JSON del snapshot en esa ruta.

A diferencia de la mayor parte de la librería, exportSnapshot es una función a nivel de paquete (como createClient), no un método del ApiClient. Se importa directamente desde @content-island/api-client.

Es la misma función sobre la que está construida la CLI (npx content-island export), así que puedes usarla directamente desde un script de Node cuando necesites más control del que ofrece la CLI — por ejemplo, para postprocesar el snapshot antes de escribirlo.

Ejemplo:

import { exportSnapshot } from '@content-island/api-client';
const snapshot = await exportSnapshot({
accessToken: process.env.CONTENT_ISLAND_ACCESS_TOKEN!,
snapshotPath: './content-island-snapshot.json',
});
console.log(snapshot.meta.exportedAt, snapshot.contents.length);

Interfaz

La función exportSnapshot acepta un objeto de opciones y devuelve una promesa que se resuelve con el ContentSnapshot ya parseado.

import { exportSnapshot } from '@content-island/api-client';
function exportSnapshot(options: ExportSnapshotOptions): Promise<ContentSnapshot>;

Cuando indicas un snapshotPath, el fichero se escribe de forma atómica —primero en un fichero temporal y luego se renombra a su sitio—, de modo que una exportación fallida nunca deja un snapshot a medias o corrupto en disco: o bien obtienes el fichero completo, o se deja intacto el anterior. Omite snapshotPath para recibir solo el objeto parseado sin tocar el sistema de ficheros.

La vista exportada depende del token: un token de acceso con prefijo PREVIEW_ exporta la vista preview; en caso contrario, la vista published. Consulta Modo preview para saber qué es un token de preview y cómo funciona.

Parámetros

La función exportSnapshot acepta un único objeto ExportSnapshotOptions:

interface ExportSnapshotOptions {
accessToken: string;
snapshotPath?: string;
domain?: string;
secureProtocol?: boolean;
apiVersion?: string;
}
ParámetroTipoObligatorioDescripción
accessTokenstringIdentifica el proyecto a exportar. Un token con prefijo PREVIEW_ exporta la vista preview; en caso contrario, la vista published.
snapshotPathstringNoCuando se indica, escribe el JSON del snapshot en esta ruta. Omítelo para recibir solo el objeto parseado.
domainstringNoSobrescribe el dominio de la API.
secureProtocolbooleanNoSi se debe usar HTTPS.
apiVersionstringNoSobrescribe la versión de la API.

Salida

La función exportSnapshot se resuelve con el ContentSnapshot ya parseado, que tiene la siguiente estructura:

interface ContentSnapshot {
meta: SnapshotMeta; // { schemaVersion, exportedAt, projectId, view }
project: Project;
contents: Content[];
}

Si el endpoint de exportación devuelve una respuesta distinta de 2xx, la llamada se rechaza con el ApiClientError estándar del contrato. En particular, una respuesta 429 — el límite de peticiones por proyecto del endpoint de exportación — se manifiesta como un ApiClientError con el código RATE_LIMITED.