Novedad: Accede al contenido más fácilmente con la api Content Island

A principios de julio hemos lanzado una mejora en la librería API de Content Island que simplifica muchísimo cómo accedes al contenido. Hasta ahora, consumir datos requería más pasos manuales de los que nos gustaría. ¡Eso ya es cosa del pasado!

🔧 ¿Cómo funcionaba antes?

Para acceder a contenido desde Content Island tenías que:

  • Definir manualmente el modelo de datos que querías consumir.
  • Hacer un mapping entre la respuesta de getContent o getContentList y tu modelo (usando un mapper proporcionado por Content Island).

¿La razón? Las respuestas incluyen metadatos útiles... pero para el 90 % de los casos, no se usan. Así que decidimos simplificar el flujo.

Ejemplo clásico

  1. Definir el modelo de datos manualmente en TypeScript:
export interface About {
  id: string;
  picture: {
    name: string;
    link: string;
  };
  fullname: string;
  shortBio: string;
  extendedBio: string;
}
  1. Hacer el mapping con ayuda del mapper:
export async function getAbout(): Promise<About> {
  const response = await client.getContent("67c9817f98e17b1396f20d0f", {
    contentType: "About",
  });

  return mapContentToModel<About>(response);
}

🚀 ¿Qué cambia con la nueva versión?

Ahora todo es mucho más sencillo. Desde la pestaña Modelo en la app de Content Island, en la cabecera de cada entidad verás un botón con el icono de TypeScript.

📋 Copia el modelo directamente

Al hacer clic, se abre un modal con la interfaz TypeScript ya generada. Solo tienes que copiarla y usarla en tu código. Así de simple.

generate-ts.gif

🧠 Sin necesidad de mappers

Ya no tienes que hacer manualmente el mapping: simplemente pasa tu modelo como tipo genérico en getContent o getContentList, y Content Island hace el resto por ti.

export const getAbout = async (): Promise<About> =>
  client.getContent("67c9817f98e17b1396f20d0f", {
    contentType: "About",
  });

🛠️ ¿Y si necesitas los metadatos?

¡Ningún problema! Si tu caso requiere acceder a los metadatos (por ejemplo, fechas, revisiones, IDs internos...), puedes seguir utilizando los nuevos métodos:

  • getContentRaw
  • getContentListRaw

Estos devuelven la respuesta completa, tal y como se hacía antes.

📚 Más recursos

Aquí tienes los enlaces a la documentación oficial para que puedas profundizar más: