Framework-Adapter
Adapter stellen die Suche als HTTP-Endpoint bereit. Jeder Adapter nutzt die gleiche Logik, angepasst an das jeweilige Framework.
Next.js App Router
// app/api/search/route.ts
import { createNextHandler } from '@processcube-io/qmd-search/adapters/nextjs';
export const GET = createNextHandler(store, {
cacheControl: 'public, max-age=60, s-maxage=60', // Default
});Express
import { createExpressMiddleware } from '@processcube-io/qmd-search/adapters/express';
app.use('/api/search', createExpressMiddleware(store));Hono
import { createHonoHandler } from '@processcube-io/qmd-search/adapters/hono';
app.get('/api/search', createHonoHandler(store));Standalone HTTP-Server
Fuer den Einsatz ohne Framework — ein kompletter HTTP-Server mit REST, Health-Check und optionalem MCP:
import { startServer } from '@processcube-io/qmd-search/adapters/standalone';
import { createEnvAuth } from '@processcube-io/qmd-search/auth/env-auth';
const server = await startServer(store, {
port: 3001,
host: '0.0.0.0',
corsOrigin: '*',
auth: createEnvAuth(), // Optional: API-Key Auth
mcp: { name: 'my-docs' }, // Optional: MCP-Endpoint
});Endpoints
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /api/search?q=...&collection=...&limit=... | Suche |
GET | /api/collections | Collections auflisten |
POST | /api/mcp | MCP-Endpoint (wenn aktiviert) |
GET | /health | Health-Check (immer ohne Auth) |
Query-Parameter
Alle Adapter unterstuetzen die gleichen Parameter:
| Parameter | Typ | Default | Beschreibung |
|---|---|---|---|
q | string | (Pflicht) | Suchbegriff |
collection | string | alle | Collection-Filter |
limit | number | 20 | Max. Ergebnisse (1-50) |