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
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 };}
nombre | descripción |
---|---|
id | El 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 |
contentType | El modelo del contenido que queremos recuperar. Por ejemplo: /contents?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: /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. |
includeRelatedContent | Un 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 |
pagination | Un 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. |
sorting | Un 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 };
nombre | descripción |
---|---|
string | Filtra 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 |
in | Filtra 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:
// Recupera una lista de contenidos filtrando por el modelo y el idiomacurl 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 unid
y unname
.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ódigo | Descripción |
---|---|
200 | La solicitud se ha procesado correctamente y se ha devuelto la información del proyecto. |
401 | No autorizado. El token de acceso no es válido o ha expirado. |
500 | Error interno del servidor. Ocurrió un error al procesar la solicitud. |