ملف route.js
تسمح لك Route Handlers بإنشاء معالجات طلبات مخصصة لمسار معين باستخدام واجهات برمجة التطبيقات Request و Response من الويب.
export async function GET() {
return Response.json({ message: 'Hello World' })
}
export async function GET() {
return Response.json({ message: 'Hello World' })
}
المرجع
طرق HTTP
يسمح لك ملف route بإنشاء معالجات طلبات مخصصة لمسار معين. يتم دعم طرق 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` وتعيين رأس Response `Allow` المناسب بناءً على الطرق الأخرى المعرفة في Route Handler.
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` وتعيين رأس Response `Allow` المناسب بناءً على الطرق الأخرى المعرفة في Route Handler.
export async function OPTIONS(request) {}
المعاملات
request
(اختياري)
كائن request
هو كائن NextRequest، وهو امتداد لواجهة برمجة التطبيقات Request من الويب. يعطيك NextRequest
تحكمًا أكبر في الطلب الوارد، بما في ذلك الوصول بسهولة إلى cookies
وكائن URL ممتد ومحلل nextUrl
.
import type { NextRequest } from 'next/server'
export async function GET(request: NextRequest) {
const url = request.nextUrl
}
export async function GET(request) {
const url = request.nextUrl
}
context
(اختياري)
params
: وعد يحل إلى كائن يحتوي على معلمات المسار الديناميكي للمسار الحالي.
export async function GET(
request: Request,
{ params }: { params: Promise<{ team: string }> }
) {
const { team } = await params
}
export async function GET(request, { params }) {
const { team } = await params
}
مثال | URL | params |
---|---|---|
app/dashboard/[team]/route.js | /dashboard/1 | Promise<{ team: '1' }> |
app/shop/[tag]/[item]/route.js | /shop/1/2 | Promise<{ tag: '1', item: '2' }> |
app/blog/[...slug]/route.js | /blog/1/2 | Promise<{ slug: ['1', '2'] }> |
أمثلة
التعامل مع ملفات تعريف الارتباط (cookies)
import { cookies } from 'next/headers'
export async function GET(request: NextRequest) {
const cookieStore = await cookies()
const a = cookieStore.get('a')
const b = cookieStore.set('b', '1')
const c = cookieStore.delete('c')
}
import { cookies } from 'next/headers'
export async function GET(request) {
const cookieStore = await cookies()
const a = cookieStore.get('a')
const b = cookieStore.set('b', '1')
const c = cookieStore.delete('c')
}
سجل الإصدارات
الإصدار | التغييرات |
---|---|
v15.0.0-RC | أصبح context.params وعدًا. يتوفر أداة تحويل تلقائي |
v15.0.0-RC | تم تغيير التخزين المؤقت الافتراضي لمعالجات GET من ثابت إلى ديناميكي |
v13.2.0 | تم تقديم Route Handlers. |