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 QueryParams {
id?: Filter;
contentType?: Filter;
language?: Filter;
}
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
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.