Ir al contenido

SDK Frontend

El stack frontend de Dynamia Platform ahora sigue un enfoque modular:

  1. SDK core: @dynamia-tools/sdk
  2. Adaptador UI (beta): @dynamia-tools/vue
  3. SDKs de extensiones cuando tu backend habilita modulos extra (reports, entity-files, saas)

Esta pagina resume el nuevo enfoque y como combinar estos paquetes.

El SDK core siempre es la base. Te da acceso tipado a metadata, navegacion, CRUD y acciones.

Ventana de terminal
pnpm add @dynamia-tools/sdk
import { DynamiaClient } from '@dynamia-tools/sdk';
export const client = new DynamiaClient({
baseUrl: import.meta.env.VITE_API_URL,
token: localStorage.getItem('auth_token') ?? undefined,
});

Si construyes en Vue 3, usa el adaptador oficial.

Ventana de terminal
pnpm add vue @dynamia-tools/vue @dynamia-tools/ui-core @dynamia-tools/sdk

Consulta la guia dedicada: Vue Support (Beta).

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.

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);
const app = await client.metadata.getApp();
const navigation = await client.metadata.getNavigation();
console.log(app.name, navigation.navigation.length);
const booksApi = client.crud('library/books');
const page = await booksApi.findAll({ page: 1, size: 20, q: 'clean code' });
await client.actions.executeGlobal('exportBooksToExcel', {
params: { format: 'xlsx' },
});

El mismo modelo de auth se reutiliza en todos los paquetes frontend mediante el mismo HttpClient:

  • token para Bearer (recomendado para SPA)
  • username + password para Basic auth
  • withCredentials: true para auth por cookies/sesion
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}`);
}
}
  • Leer Vue Support (Beta)
  • Explorar Extensiones
  • Revisar la documentacion de paquetes en el monorepo:
    • platform/packages/sdk
    • platform/packages/vue
    • extensions/*/packages/*-sdk