Rota işleyicileri
Full-stack app/api/*/route.ts işleyicileri, yeniden yazmalar ve yerel daemon proxy’si.
Rota işleyicileri, Web Request ve Response API’leriyle app dizininde API uç noktaları tanımlar.
Adlandırma kuralı
export function GET(): Response { return Response.json({ status: "ok" });}GET, POST, PUT, PATCH, DELETE, HEAD veya OPTIONS dışa aktarın. İşleyiciler, ara katmandan sonra text dev, text start ve her sunucu dağıtım adaptöründe çalışır. GET işleyicilerini rota segmenti yapılandırmasıyla önbelleğe alın.
Dinamik işleyiciler
export async function GET(_req: Request, { params }: { params: { id: string } }) { const session = await db.sessions.find(params.id); return session ? Response.json(session) : new Response("Not found", { status: 404 });}params değerlerinin kodlaması çözülür. Kodlanmış eğik çizgi veya ters eğik çizgi (%2F, %5C) içeren bir yol 400 yanıtı alır; bu nedenle / içerebilen kimlikleri bir sorgu parametresinde iletin veya base64url olarak kodlayın.
Akış
Sunucudan gönderilen olaylar için bir ReadableStream döndürün:
export function GET() { let n = 0; const stream = new ReadableStream({ start(c) { setInterval(() => c.enqueue(`data: ${n++}\n\n`), 1000); }, }); return new Response(stream, { headers: { "content-type": "text/event-stream" } });}Rewrite kuralları
Sunucu, harici hedeflere vekillik eder; bu nedenle tarayıcı farklı bir kaynağa istek göndermez.
export default defineConfig({ rewrites: [{ source: "/api/opencode/:path*", destination: "http://127.0.0.1:4096/:path*" }],});Yerel arka plan servisine vekillik
Makinenizdeki bir işleme erişmek için proxy kullanın:
export default defineConfig({ proxy: { "/api/opencode": { target: "http://127.0.0.1:4096", changeOrigin: true } },});OpenCode şablonu yerel bir sunucuya bu şekilde bağlanır.