Ir al contenido principal

Plugin de servidor

Plugin de servidor

Proporciona capacidades de servidor HTTP con modos de desarrollo y producción.

Características principales:

  • Servidor Express para APIs REST
  • Servidor de desarrollo Vite con recarga de módulos en caliente
  • Servicio de archivos estáticos para producción
  • Túneles remotos hacia backends desplegados

El plugin de servidor utiliza la fase de inicialización diferida para acceder a las rutas de otros plugins.

Qué hace

  • Inicia un servidor Express (por defecto host=0.0.0.0, port=8000)
  • Monta las rutas del plugin bajo /api/<pluginName>/...
  • Añade el endpoint /health (devuelve { status: "ok" })
  • Sirve el frontend:
    • Desarrollo (NODE_ENV=development): ejecuta un servidor de desarrollo de Vite en modo middleware
    • Producción: detecta automáticamente el directorio del frontend estático (comprueba dist, client/dist, build, public, out)

Ejemplo mínimo de servidor

El servidor de AppKit válido más simple:

// server/server.ts
import { createApp, server } from "@databricks/appkit";

await createApp({
  plugins: [server()],
});

Ejemplo de rutas personalizadas

Usa el callback onPluginsReady para extender Express con rutas personalizadas antes de que se inicie el servidor:

import { createApp, server } from "@databricks/appkit";

await createApp({
  plugins: [server()],
  onPluginsReady(appkit) {
    appkit.server.extend((app) => {
      app.get("/custom", (_req, res) => res.json({ ok: true }));
    });
  },
});

El callback onPluginsReady también admite operaciones asíncronas:

await createApp({
  plugins: [server()],
  async onPluginsReady(appkit) {
    const pool = await initializeDatabase();
    appkit.server.extend((app) => {
      app.get("/data", async (_req, res) => {
        const result = await pool.query("SELECT 1");
        res.json(result);
      });
    });
  },
});

Opciones de configuración

import { createApp, server } from "@databricks/appkit";

await createApp({
  plugins: [
    server({
      port: 8000,          // predeterminado: Number(process.env.DATABRICKS_APP_PORT) || 8000
      host: "0.0.0.0",     // predeterminado: process.env.FLASK_RUN_HOST || "0.0.0.0"
      staticPath: "dist",  // opcional: forzar un directorio estático concreto
    }),
  ],
});

Databricks Developer Hub

¿Todo listo para lanzar tu próxima aplicación basada en agentes en minutos?

Leer la documentación