Saltearse al contenido

getContent

La función getContent obtiene un solo contenido de un proyecto. Esta función es útil para obtener un contenido específico, como un artículo o una entrada de blog.

Ejemplo:

// Usando el cliente que ya hemos creado previamente
const content = await client.getContent({ id: '1' });
console.log(content);

Interfaz

La función getContent acepta como parámetros un objeto QueryParams requerido y devuelve una promesa que se resuelve con el contenido.

export interface ApiClient {
getContent: <Model>(queryParam: QueryParams<Model>) => Promise<Model>;
// ... otros métodos
}

Parámetros

  • queryParam: Un objeto que contiene los parámetros de consulta para filtrar el contenido. Este parámetro es requerido para poder recuperar el contenido filtrado por id o cualquier otro filtro que quieras aplicar.
interface QueryParams {
id?: Filter;
contentType?: Filter;
language?: Filter;
'fields.${string}'?: Filter; // Permite filtrar por valores específicos de campos
// Por ejemplo: 'fields.slug': 'my-post'
}
nombredescripción
idEl campo id del contenido a recuperar.
Este parámetro debe ser un string
Ejemplo: client.getContent({ id: '1' })
Puedes encontrar el id del contenido en la pestaña Contenido de tu proyecto.
contentTypeEl modelo del contenido que queremos recuperar.
Por ejemplo: client.getContent({ id: '1', contentType: 'post' })
languageEl idioma del contenido que queremos recuperar.
Cuando aplicamos este filtro, solamente devolverá los campos del modelo en el idioma seleccionado y descartará los demás.
Por ejemplo: client.getContent({ id: '1', language: 'es' })
fields.${string}Permite filtrar por valores específicos de campos.
Ejemplos:
client.getContent({ 'fields.slug': 'my-post' } })
client.getContent({ 'fields.title': { in: ['Hello World', 'Hola Mundo'] } })
Recupera contenido con campos que coincidan con los valores especificados.
type Filter =
| string
| {
in?: string[];
};
nombredescripción
stringFiltra el contentido donde el parámetro es igual a este valor.
Por ejemplo: client.getContent('1', { contentType: 'post' })
Recupera un contentido cuyo modelo es igual a post
inFiltra el contenido donde el parámetro contiene alguno de estos valores.
Por ejemplo: client.getContent('1', { language: { in: ['es', 'en'] } })
Recupera un contenido filtrando los campos que coincidan con es y/o en

Salida

La función getContent devuelve un objeto que contiene el contenido (filtrado o no). Este objeto representa los valores del contenido que los usuarios definen en su proyecto en Content Island.

Ejemplo:

import { createClient } from '@content-island/api-client';
// ... código de inicialización del cliente
// Tu modelo Post definido en Content Island
interface Post {
id: string; // Id del contenido
title: string; // Campo definido en el modelo
body: string; // Campo definido en el modelo
order: number; // Campo definido en el modelo
language: 'es' | 'en'; // o cualquier otro idioma que tengas definido en tu proyecto
}
const post = await client.getContent({ id: '1' });
console.log(post);
/*
{
id: '1',
title: 'Hola Mundo',
body: 'Este es el cuerpo del post en markdown.',
order: 1,
language: 'es',
}
*/

Puedes ver que el contenido ya está mapeado a su modelo correspondiente y puedes acceder a los campos directamente sin tener que hacer un mapeo manual.

getContent utiliza la función mapContentToModel por debajo para mapear el contenido a su modelo, visita esa sección para más información sobre cómo funciona el mapeo de contenido.