SDK Frontend
El stack frontend de Dynamia Platform ahora sigue un enfoque modular:
- SDK core:
@dynamia-tools/sdk - Adaptador UI (beta):
@dynamia-tools/vue - SDKs de extensiones cuando tu backend habilita modulos extra (
reports,entity-files,saas)
Esta pagina resume el nuevo enfoque y como combinar estos paquetes.
Stack Frontend (v26)
Sección titulada «Stack Frontend (v26)»1) SDK core (@dynamia-tools/sdk)
Sección titulada «1) SDK core (@dynamia-tools/sdk)»El SDK core siempre es la base. Te da acceso tipado a metadata, navegacion, CRUD y acciones.
pnpm add @dynamia-tools/sdkimport { DynamiaClient } from '@dynamia-tools/sdk';
export const client = new DynamiaClient({ baseUrl: import.meta.env.VITE_API_URL, token: localStorage.getItem('auth_token') ?? undefined,});2) Soporte Vue (@dynamia-tools/vue) - Beta
Sección titulada «2) Soporte Vue (@dynamia-tools/vue) - Beta»Si construyes en Vue 3, usa el adaptador oficial.
pnpm add vue @dynamia-tools/vue @dynamia-tools/ui-core @dynamia-tools/sdkConsulta la guia dedicada: Vue Support (Beta).
3) SDKs de extensiones (opcional)
Sección titulada «3) SDKs de extensiones (opcional)»Instala estos paquetes solo cuando tu backend usa la extension correspondiente:
@dynamia-tools/reports-sdk@dynamia-tools/files-sdk@dynamia-tools/saas-sdk
Consulta Extensiones para instalacion y uso por extension.
Arquitectura Recomendada
Sección titulada «Arquitectura Recomendada»Usa un unico DynamiaClient compartido y pasa client.http a los SDKs de extensiones.
import { DynamiaClient } from '@dynamia-tools/sdk';import { ReportsApi } from '@dynamia-tools/reports-sdk';import { FilesApi } from '@dynamia-tools/files-sdk';import { SaasApi } from '@dynamia-tools/saas-sdk';
const client = new DynamiaClient({ baseUrl: import.meta.env.VITE_API_URL, token: localStorage.getItem('auth_token') ?? undefined,});
export const reports = new ReportsApi(client.http);export const files = new FilesApi(client.http);export const saas = new SaasApi(client.http);Capacidades Core en el Nuevo Flujo
Sección titulada «Capacidades Core en el Nuevo Flujo»Metadata y navegacion
Sección titulada «Metadata y navegacion»const app = await client.metadata.getApp();const navigation = await client.metadata.getNavigation();console.log(app.name, navigation.navigation.length);CRUD por ruta virtual
Sección titulada «CRUD por ruta virtual»const booksApi = client.crud('library/books');const page = await booksApi.findAll({ page: 1, size: 20, q: 'clean code' });Acciones globales y de entidad
Sección titulada «Acciones globales y de entidad»await client.actions.executeGlobal('exportBooksToExcel', { params: { format: 'xlsx' },});Autenticacion
Sección titulada «Autenticacion»El mismo modelo de auth se reutiliza en todos los paquetes frontend mediante el mismo HttpClient:
tokenpara Bearer (recomendado para SPA)username+passwordpara Basic authwithCredentials: truepara auth por cookies/sesion
Manejo de errores
Sección titulada «Manejo de errores»import { DynamiaApiError } from '@dynamia-tools/sdk';
try { await client.crud('library/books').findById(999999);} catch (error) { if (error instanceof DynamiaApiError) { console.error(`[${error.status}] ${error.message}`); }}Siguientes pasos
Sección titulada «Siguientes pasos»- Leer Vue Support (Beta)
- Explorar Extensiones
- Revisar la documentacion de paquetes en el monorepo:
platform/packages/sdkplatform/packages/vueextensions/*/packages/*-sdk