Ir para o conteúdo principal

Plugin de servidor

Plugin de servidor

Fornece recursos de servidor HTTP com modos de desenvolvimento e produção.

Principais recursos:

  • Servidor Express para APIs REST
  • Servidor de desenvolvimento Vite com hot module reload
  • Entrega de arquivos estáticos em produção
  • Tunelamento remoto para backends em produção (deploy)

O plugin de servidor usa a fase de inicialização adiada para acessar rotas de outros plugins.

O que ele faz

  • Inicia um servidor Express (padrão host=0.0.0.0, port=8000)
  • Monta as rotas do plugin em /api/<pluginName>/...
  • Adiciona o endpoint /health (retorna { status: "ok" })
  • Serve o frontend:
    • Desenvolvimento (NODE_ENV=development): executa um servidor de desenvolvimento Vite em modo middleware
    • Produção: detecta automaticamente o diretório estático do frontend (verifica dist, client/dist, build, public, out)

Exemplo mínimo de servidor

O menor servidor AppKit válido:

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

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

Exemplo de rotas personalizadas

Use o callback onPluginsReady para estender o Express com rotas personalizadas antes de o servidor iniciar:

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 }));
    });
  },
});

O callback onPluginsReady também oferece suporte a operações assí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);
      });
    });
  },
});

Opções de configuração

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

await createApp({
  plugins: [
    server({
      port: 8000,          // padrão: Number(process.env.DATABRICKS_APP_PORT) || 8000
      host: "0.0.0.0",     // padrão: process.env.FLASK_RUN_HOST || "0.0.0.0"
      staticPath: "dist",  // opcional: força um diretório estático específico
    }),
  ],
});

Databricks Developer Hub

Pronto para lançar seu próximo aplicativo baseado em agentes em minutos?

Ler a documentação