Framework-Adapter
Adapter stellen die Suche als HTTP-Endpoint bereit. Jeder Adapter nutzt die gleiche Logik, angepasst an das jeweilige Framework.
Seit v2.2.0 bringt jeder REST-Adapter zusaetzlich einen Handler fuer
GET /api/document?id=… mit — den Volltextabruf eines einzelnen Dokuments als
zweiten Schritt nach der Suche. Details unter REST-API.
Next.js App Router
// app/api/search/route.ts
import { createNextHandler } from '@processcube-io/knowledge-sdk/adapters/nextjs';
export const GET = createNextHandler(store, {
cacheControl: 'public, max-age=60, s-maxage=60', // Default
});// app/api/document/route.ts — eigene Route-Datei
import { createNextDocumentHandler } from '@processcube-io/knowledge-sdk/adapters/nextjs';
export const GET = createNextDocumentHandler(store);Express
import {
createExpressMiddleware,
createExpressDocumentMiddleware,
} from '@processcube-io/knowledge-sdk/adapters/express';
app.use('/api/search', createExpressMiddleware(store));
app.use('/api/document', createExpressDocumentMiddleware(store));Hono
import {
createHonoHandler,
createHonoDocumentHandler,
} from '@processcube-io/knowledge-sdk/adapters/hono';
app.get('/api/search', createHonoHandler(store));
app.get('/api/document', createHonoDocumentHandler(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/knowledge-sdk/adapters/standalone';
import { createEnvAuth } from '@processcube-io/knowledge-sdk/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/document?id=...&maxBytes=... | Einzelnes Dokument im Volltext (automatisch registriert) |
GET | /api/collections | Collections auflisten |
POST | /api/mcp | MCP-Endpoint (wenn aktiviert) |
GET | /health | Health-Check (immer ohne Auth) |
GET | /wiki · /api/wiki/* | Wiki-Layer, wenn WIKI_DIR gesetzt ist |
Query-Parameter
Alle Adapter unterstuetzen die gleichen Parameter.
Suche (/api/search)
| Parameter | Typ | Default | Beschreibung |
|---|---|---|---|
q | string | (Pflicht) | Suchbegriff |
collection | string | alle | Collection-Filter |
limit | number | 20 | Max. Ergebnisse (1-50) |
Dokument (/api/document)
| Parameter | Typ | Default | Beschreibung |
|---|---|---|---|
id | string | (Pflicht) | Dokument-ID aus dem Feld id eines Suchtreffers |
maxBytes | number | 100000 | Obergrenze fuer den Body in Zeichen (1.000–500.000) |
Der Dokument-Endpoint antwortet mit 501, wenn der uebergebene Store kein getDocument
anbietet — die Suche funktioniert davon unabhaengig weiter.