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ı

app/api/health/route.tsts
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

app/api/sessions/[id]/route.tsts
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:

app/api/ticks/route.tsts
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.

text.config.tsts
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:

text.config.tsts
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.

Bu sayfayı GitHub’da düzenle