روٹ ہینڈلرز

فل اسٹیک ⁦app/api/⁩*⁦/route.ts⁩ ہینڈلرز، ری رائٹس اور مقامی ڈیمَن پراکسی۔

روٹ ہینڈلرز Web کی Request اور Response APIs کے ساتھ 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 ملتا ہے، اس لیے ایسی IDs جن میں / ہو سکتا ہے، کوئری پیرامیٹر میں پاس کریں یا انہیں ⁦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⁩ پر اس صفحے میں ترمیم کریں