Introducción
🎯 ¿Qué hace este módulo?
El módulo GeneralTypes te permite recuperar tipos de entidades a nivel de sistema - tipos de página, tipos de formulario, tipos de bloques de productos, y más - que definen la estructura y categorías de tu contenido en OneEntry.
Piénsalo como tu sistema de clasificación de contenido - OneEntry utiliza tipos para organizar diferentes tipos de páginas (página de inicio, entrada de blog, página de producto), formularios (contacto, encuesta), bloques (hero, galería) y productos (físicos, digitales), y este módulo te permite obtener todos los tipos disponibles para construir interfaces dinámicas.
📖 Explicación Simple
En OneEntry, cada entidad tiene un tipo que determina su propósito y estructura:
- Tipos de Página:
homepage,blog_post,product_page,landing_page - Tipos de Formulario:
contact_form,survey,registration,feedback - Tipos de Bloques de Producto:
hero_section,image_gallery,text_block,video_embed - Tipos de Producto:
physical_product,digital_product,service,subscription
El módulo GeneralTypes proporciona la lista completa de todos los tipos configurados en tu proyecto de OneEntry, para que puedas:
✅ Construir menús desplegables dinámicos - Permitir a los admins elegir el tipo de página al crear contenido
✅ Filtrar contenido - Mostrar solo páginas "blog_post" o formularios "contact_form"
✅ Validar datos - Comprobar si un tipo existe antes de crear una entidad
✅ Crear lógica basada en tipos - Mostrar diferentes interfaces de usuario según el tipo de página
Ejemplo del mundo real:
Tu aplicación de blog obtiene todos los tipos de página:
- "homepage" → Renderiza el slider de publicaciones destacadas
- "blog_post" → Renderiza el diseño del artículo con comentarios
- "about_page" → Renderiza las tarjetas de miembros del equipo
- "contact_page" → Renderiza el formulario de contacto
✨ Conceptos Clave
Jerarquía del Sistema de Tipos
OneEntry organiza el contenido utilizando un sistema de tipos donde cada entidad pertenece a una categoría:
| Entidad | Ejemplos de Tipos | Propósito |
|---|---|---|
| Páginas | homepage, blog_post, product_page, landing_page | Definir diseños y funcionalidades de páginas |
| Formularios | contact_form, survey, registration, feedback | Categorizar diferentes propósitos de formularios |
| Bloques de Producto | hero_section, gallery, text_block, video_embed | Bloques de construcción para páginas de productos |
| Productos | physical_product, digital_product, service, subscription | Clasificar inventario de productos |
Estructura de la Entidad de Tipo
Cada tipo devuelto por GeneralTypes.getAllTypes() tiene esta estructura:
interface GeneralTypeEntity {
id: number; // ID numérico único (por ejemplo, 1, 2, 3)
type: string; // Nombre del tipo (por ejemplo, "blog_post", "contact_form")
}
Cuándo Usar GeneralTypes
| Caso de Uso | ¿Por qué GeneralTypes? |
|---|---|
| Construcción de interfaz de admin de CMS | Población de menús desplegables con tipos disponibles |
| Creación de filtros por tipo | Permitir a los usuarios filtrar contenido por tipo (entradas de blog vs. páginas de destino) |
| Validación de creación de entidades | Comprobar si un tipo existe antes de crear una página/formulario |
| Enrutamiento dinámico | Enrutar diferentes tipos de página a diferentes componentes |
| Permisos basados en tipos | Permitir que diferentes roles accedan a diferentes tipos de contenido |
📋 Lo Que Necesitas Saber
Los tipos se configuran en el Panel de Administración de OneEntry
No creas tipos a través del SDK - los tipos se definen en tu panel de administración de OneEntry cuando configuras tu proyecto. El módulo GeneralTypes solo recupera la lista de tipos existentes.
Cómo se crean los tipos:
Panel de Administración de OneEntry → Configuración → Tipos de Contenido → Agregar Tipo de Página → "blog_post"
Una vez creados, puedes obtenerlos.
Tipos vs. Marcadores vs. IDs
Distinción importante:
| Identificador | Qué Es | Ejemplo | Mejor Para |
|---|---|---|---|
| Tipo | Categoría/clasificación de entidad | "blog_post" | Filtrado y agrupamiento |
| Marcador | Identificador único legible por humanos | "my_about_page" | Obtener entidades específicas |
| ID | Identificador numérico de base de datos | 42 | Uso interno del sistema |
getAllTypes() devuelve TODOS los tipos de todas las entidades
El método devuelve una lista combinada de tipos de:
- Páginas
- Formularios
- Bloques de Productos
- Productos
- Cualquier otra entidad en tu proyecto de OneEntry
No hay filtrado incorporado por categoría de entidad, así que necesitarás filtrar manualmente:
Los tipos son sensibles a mayúsculas y minúsculas
Siempre usa coincidencia exacta de mayúsculas al trabajar con tipos.
Usa tipos para renderizado de contenido dinámico
Los tipos permiten contenido polimórfico - lógica de renderizado diferente según el tipo:
📊 Tabla de Referencia Rápida
| Método | Descripción | Caso de Uso |
|---|---|---|
| getAllTypes() | Recupera todos los tipos generales en el sistema | Población de menús desplegables, validación de tipos |
Estructura de GeneralTypeEntity:
{
id: number; // ID numérico único
type: string; // Nombre del tipo (por ejemplo, "blog_post")
}
❓ Preguntas Frecuentes (FAQ)
¿Cómo creo nuevos tipos?
No puedes crear tipos a través del SDK. Los tipos se crean en el Panel de Administración de OneEntry:
1. Inicia sesión en el Panel de Administración de OneEntry
2. Ve a Configuración → Tipos de Contenido
3. Haz clic en "Agregar Tipo de Página" (o Tipo de Formulario, Tipo de Producto, etc.)
4. Ingresa el nombre del tipo: "blog_post"
5. Guarda
Ahora obténlo a través del SDK:
const types = await GeneralTypes.getAllTypes();
// Devuelve: [{ id: 1, type: "blog_post" }, ...]
¿Cómo filtro tipos por entidad (páginas, formularios, productos)?
El método getAllTypes() devuelve todos los tipos de todas las entidades. Necesitas filtrar manualmente.
¿Puedo actualizar o eliminar tipos a través del SDK?
No. El módulo GeneralTypes es solo de lectura. Toda la gestión de tipos ocurre en el Panel de Administración de OneEntry.
¿Cuál es la diferencia entre el ID de tipo y el nombre de tipo?
Cuándo usar cada uno:
| Campo | Uso Para | Ejemplo |
|---|---|---|
id | Referencias internas del sistema | Relaciones de base de datos |
type | Tu lógica de código y comparaciones | if (page.type === 'blog_post') |
Mejor práctica: Siempre usa la cadena type en tu código, no el número id (los IDs pueden cambiar entre entornos).
¿Puedo almacenar en caché la lista de tipos?
¡Sí! Los tipos rara vez cambian, por lo que se recomienda almacenar en caché.
¿Cómo manejo la falta de tipos de manera elegante?
Siempre valida que un tipo exista antes de usarlo.
¿Puedo usar tipos para autorización/permisos?
¡Sí! Puedes implementar control de acceso basado en tipos.
💡 Notas Importantes
⚠️ Los tipos son Específicos del Proyecto
Los tipos están configurados en tu panel de administración de OneEntry y varían entre proyectos. No hay tipos "predeterminados" universales - siempre obtén la lista dinámicamente:
// ❌ No codifiques tipos
const pageTypes = ['homepage', 'blog_post', 'product_page'];
// ✅ Obtén tipos dinámicamente
const allTypes = await GeneralTypes.getAllTypes();
const pageTypes = allTypes.filter(t => t.type.endsWith('_page'));
🔒 Módulo de Solo Lectura
El módulo GeneralTypes solo lee tipos. Toda la creación, modificación y eliminación de tipos ocurre en el Panel de Administración de OneEntry.
🎓 Mejores Prácticas
- Obtén tipos dinámicamente - No codifiques listas de tipos.
- Almacena en caché los tipos - Rara vez cambian, almacena en caché para mejorar el rendimiento.
- Usa cadenas de tipo, no IDs - Los nombres de tipo son estables entre entornos.
- Valida que los tipos existan - Comprueba si un tipo es válido antes de usarlo.
- Usa convenciones de nomenclatura - Nombres consistentes facilitan el filtrado.
- Implementa renderizado de respaldo - Maneja tipos desconocidos de manera elegante.
- Documenta tus tipos - Mantén una lista de tipos y sus propósitos.
- Usa TypeScript para seguridad de tipos - Aprovecha la interfaz
GeneralTypeEntity.
Definición del módulo GeneralTypes
El módulo GeneralTypes en la Plataforma OneEntry está diseñado para gestionar y recuperar tipos generales utilizados dentro del sistema. Al usar la función defineOneEntry, puedes crear un objeto GeneralTypes para interactuar con estos tipos.
El método principal disponible es getAllTypes, que recupera todos los objetos del tipo GeneralTypeEntity de la API.
Este método devuelve una Promesa que se resuelve en un array de objetos GeneralTypeEntity, cada uno conteniendo un id y un type.
Los tipos cubren varios propósitos, como diseños de páginas, formularios, bloques de productos, y más, proporcionando flexibilidad para diferentes necesidades de gestión de contenido.
const { GeneralTypes } = defineOneEntry( "your-project-url", { "token": "your-app-token" });