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 previamenteconst 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 porid
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'}
nombre | descripción |
---|---|
id | El 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. |
contentType | El modelo del contenido que queremos recuperar. Por ejemplo: client.getContent({ id: '1', contentType: 'post' }) |
language | El 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[]; };
nombre | descripción |
---|---|
string | Filtra 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 |
in | Filtra 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 Islandinterface 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.