ملف route.js

تسمح لك معالجات المسارات (Route Handlers) بإنشاء معالجات طلبات مخصصة لمسار معين باستخدام واجهات برمجة التطبيقات Request و Response الخاصة بالويب.

طرق HTTP

يسمح لك ملف المسار بإنشاء معالجات طلبات مخصصة لمسار معين. يتم دعم طرق HTTP التالية: GET, POST, PUT, PATCH, DELETE, HEAD, و OPTIONS.

export async function GET(request: Request) {}

export async function HEAD(request: Request) {}

export async function POST(request: Request) {}

export async function PUT(request: Request) {}

export async function DELETE(request: Request) {}

export async function PATCH(request: Request) {}

// إذا لم يتم تعريف `OPTIONS`، سيقوم Next.js تلقائيًا بتنفيذ `OPTIONS` وتعيين رأس الاستجابة `Allow` المناسب بناءً على الطرق الأخرى المعرفة في معالج المسار.
export async function OPTIONS(request: Request) {}
export async function GET(request) {}

export async function HEAD(request) {}

export async function POST(request) {}

export async function PUT(request) {}

export async function DELETE(request) {}

export async function PATCH(request) {}

// إذا لم يتم تعريف `OPTIONS`، سيقوم Next.js تلقائيًا بتنفيذ `OPTIONS` وتعيين رأس الاستجابة `Allow` المناسب بناءً على الطرق الأخرى المعرفة في معالج المسار.
export async function OPTIONS(request) {}

معلومة مفيدة: معالجات المسارات متاحة فقط داخل دليل app. لا تحتاج إلى استخدام مسارات API (pages) ومعالجات المسارات (app) معًا، حيث يجب أن تكون معالجات المسارات قادرة على التعامل مع جميع حالات الاستخدام.

المعاملات

request (اختياري)

كائن request هو كائن NextRequest، وهو امتداد لواجهة برمجة التطبيقات Request الخاصة بالويب. يمنحك NextRequest تحكمًا أكبر في الطلب الوارد، بما في ذلك الوصول السهل إلى cookies وكائن URL ممتد ومحلل nextUrl.

context (اختياري)

app/dashboard/[team]/route.js
export async function GET(request, context: { params }) {
  const team = params.team // '1'
}

حاليًا، القيمة الوحيدة لـ context هي params، وهو كائن يحتوي على معاملات المسار الديناميكي للمسار الحالي.

مثالURLparams
app/dashboard/[team]/route.js/dashboard/1{ team: '1' }
app/shop/[tag]/[item]/route.js/shop/1/2{ tag: '1', item: '2' }
app/blog/[...slug]/route.js/blog/1/2{ slug: ['1', '2'] }

NextResponse

يمكن لمعالجات المسارات تمديد واجهة برمجة التطبيقات Response الخاصة بالويب عن طريق إرجاع كائن NextResponse. هذا يسمح لك بسهولة تعيين ملفات تعريف الارتباط (cookies) والرؤوس (headers) وإعادة التوجيه (redirect) وإعادة الكتابة (rewrite). عرض مرجع API.

سجل الإصدارات

الإصدارالتغييرات
v13.2.0تم تقديم معالجات المسارات.