Saltearse al contenido

Lista de contenidos

Obtiene una lista de contenidos de un proyecto.

Este endpoint es útil para obtener todos los contenidos o se puede filtrar por un modelo específico. Por ejemplo, si tienes un modelo llamado post, puedes usar un query param para obtener todos los contenidos de ese modelo.

Endpoint

shell
curl https://api.contentisland.net/api/1.0/contents \
--header 'Authorization: Bearer TU_TOKEN_DE_ACCESO'

Query Params

Este endpoint acepta los siguientes query params:

interface ContentListQueryParams {
id?: Filter;
contentType?: Filter;
language?: Filter;
`fields.${string}`?: Filter; // Permite filtrar por valores específicos de campos
// Por ejemplo: 'fields.slug': 'my-post'
includeRelatedContent?: boolean; // Indica si se debe incluir contenido relacionado en la respuesta (solo relaciones de primer nivel)
pagination?: {
take?: number; // Número de elementos a recuperar
skip?: number; // Número de elementos a omitir
};
sorting?: {
contentType?: 'asc' | 'desc'; // Ordenar por modelo de contenido en orden ascendente o descendente
lastUpdate?: 'asc' | 'desc'; // Ordenar por fecha de última actualización
`fields.${string}`?: 'asc' | 'desc'; // Ordenar por valores específicos de campos
};
}
nombredescripción
idEl campo id del contenido a recuperar. Este filtro es útil cuando se quiere recuperar una lista de contenidos pero se conoce los ids de éstos.
Por ejemplo: /contents?id[in]=1,2,3
contentTypeEl modelo del contenido que queremos recuperar.
Por ejemplo: /contents?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: /contents?language=es
fields.${string}Permite filtrar por valores específicos de campos.
Ejemplos:
/contents?fields.slug=my-post
/contents?fields.title[in]=hello%20world,hola%20mundo
Recupera contenidos con campos que coincidan con los valores especificados.
includeRelatedContentUn booleano que indica si se debe incluir contenido relacionado en la respuesta. Esto es útil cuando se quiere obtener contenido junto con sus elementos relacionados (solo relaciones de primer nivel).
Por ejemplo: /contents?includeRelatedContent=true
paginationUn objeto que permite paginar los resultados.
take: Número de elementos a recuperar.
skip: Número de elementos a omitir.
Por ejemplo: client.getContentList({ pagination: { take: 10, skip: 20 } }) recupera 10 elementos omitiendo los primeros 20.
sortingUn objeto que permite ordenar los resultados.
contentType: Ordenar por modelo de contenido en orden ascendente o descendente.
lastUpdate: Ordenar por fecha de última actualización.
fields.${string}: Ordenar por valores específicos de campos.
Por ejemplo: client.getContentList({ sorting: { 'fields.title': 'asc' } }) ordena por el campo order en orden ascendente.
type Filter =
| string
| {
in?: string[];
// A futuro se añadirán más filtros
};
nombredescripción
stringFiltra el contentido donde el parámetro es igual a este valor.
Por ejemplo: /contents?contentType=post
Recupera una lista de contenidos cuyo modelo es igual a post
inFiltra el contenido donde el parámetro contiene alguno de estos valores.
Por ejemplo: /contents?language[in]=es,en
Recupera una lista de contenidos filtrando los campos que coincidan con es y/o en

Ejemplo:

shell
// Recupera una lista de contenidos filtrando por el modelo y el idioma
curl https://api.contentisland.net/api/1.0/contents?contentType=post&language[in]=es,en \
--header 'Authorization: Bearer TU_TOKEN_DE_ACCESO'

Respuesta

La respuesta es un array de objetos JSON que contienen información sobre los contenidos. Cada objeto tiene la siguiente estructura:

export interface Content {
id: string;
contentType: { id: string; name: string };
lastUpdate: Date;
fields: Field[];
}
export interface Field {
id: string;
name: string;
value: any;
type: FieldType;
isArray: boolean;
language: string;
}
  • id: El ID del contenido.
  • contentType: El modelo al que pertenece el contenido. Contiene un id y un name.
  • lastUpdate: La fecha de la última actualización del contenido.
  • fields: Un array de objetos que representan los campos del contenido.

Ejemplo:

[
{
"id": "1",
"contentType": {
"id": "100",
"name": "post"
},
"lastUpdate": "2023-10-01T12:00:00Z",
"fields": [
{
"id": "111",
"name": "title",
"value": "Hola Mundo",
"type": "short-text",
"isArray": false,
"language": "es"
},
{
"id": "222",
"name": "body",
"value": "Este es el cuerpo del post en markdown.",
"type": "long-text",
"isArray": false,
"language": "es"
},
{ "id": "333", "name": "order", "value": 1, "type": "number", "isArray": false, "language": "es" }
]
}
]

Códigos de estado

CódigoDescripción
200La solicitud se ha procesado correctamente y se ha devuelto la información del proyecto.
401No autorizado. El token de acceso no es válido o ha expirado.
500Error interno del servidor. Ocurrió un error al procesar la solicitud.