रूट हैंडलर

फ़ुल-स्टैक app/api/*/route.ts हैंडलर, रीराइट और लोकल डेमन प्रॉक्सीइंग।

रूट हैंडलर Web Request और Response API के साथ app डायरेक्टरी में API एंडपॉइंट तय करते हैं।

कन्वेंशन

app/api/health/route.tsts
export function GET(): Response {  return Response.json({ status: "ok" });}

GET, POST, PUT, PATCH, DELETE, HEAD या OPTIONS एक्सपोर्ट करें। हैंडलर text dev, text start और हर सर्वर डिप्लॉय अडैप्टर पर मिडलवेयर के बाद चलते हैं। रूट सेगमेंट कॉन्फ़िग से GET हैंडलर कैश करें।

डायनैमिक हैंडलर

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 की वैल्यू डिकोड होती हैं। एन्कोड किए गए स्लैश या बैकस्लैश (%2F, %5C) वाले पाथ को 400 मिलता है, इसलिए जिन ID में / हो सकता है, उन्हें क्वेरी पैरामीटर में भेजें या base64url के रूप में एन्कोड करें।

स्ट्रीमिंग

सर्वर-सेंट इवेंट के लिए ReadableStream लौटाएं:

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

सर्वर बाहरी डेस्टिनेशन के लिए प्रॉक्सी का काम करता है, इसलिए ब्राउज़र कोई क्रॉस-ऑरिजिन रिक्वेस्ट नहीं करता।

text.config.tsts
export default defineConfig({  rewrites: [{ source: "/api/opencode/:path*", destination: "http://127.0.0.1:4096/:path*" }],});

लोकल डीमन प्रॉक्सी

अपनी मशीन पर किसी प्रोसेस तक पहुंचने के लिए proxy का इस्तेमाल करें:

text.config.tsts
export default defineConfig({  proxy: { "/api/opencode": { target: "http://127.0.0.1:4096", changeOrigin: true } },});

OpenCode टेम्पलेट इसी तरह लोकल सर्वर से कनेक्ट होता है।

GitHub पर यह पेज एडिट करें