route.js

Les gestionnaires de route (Route Handlers) vous permettent de créer des gestionnaires de requêtes personnalisés pour une route donnée en utilisant les API Web Request et Response.

Méthodes HTTP

Un fichier route vous permet de créer des gestionnaires de requêtes personnalisés pour une route donnée. Les méthodes HTTP suivantes sont prises en charge : GET, POST, PUT, PATCH, DELETE, HEAD et 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) {}

// Si `OPTIONS` n'est pas défini, Next.js implémentera automatiquement `OPTIONS` et définira l'en-tête `Allow` approprié dans la Response en fonction des autres méthodes définies dans le gestionnaire de route.
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) {}

// Si `OPTIONS` n'est pas défini, Next.js implémentera automatiquement `OPTIONS` et définira l'en-tête `Allow` approprié dans la Response en fonction des autres méthodes définies dans le gestionnaire de route.
export async function OPTIONS(request) {}

Bon à savoir : Les gestionnaires de route (Route Handlers) ne sont disponibles que dans le répertoire app. Vous n'avez pas besoin d'utiliser à la fois les routes API (pages) et les gestionnaires de route (app), car les gestionnaires de route devraient pouvoir gérer tous les cas d'utilisation.

Paramètres

request (optionnel)

L'objet request est un objet NextRequest, qui étend l'API Web Request. NextRequest vous donne un meilleur contrôle sur la requête entrante, notamment un accès facile aux cookies et un objet URL étendu et analysé nextUrl.

context (optionnel)

type Params = {
  team: string
}

export async function GET(request: Request, context: { params: Params }) {
  const team = context.params.team // '1'
}

// Définissez le type des paramètres en fonction des paramètres de votre route (voir tableau ci-dessous)

export async function GET(request, context: { params }) {
  const team = context.params.team // '1'
}

Actuellement, la seule valeur de context est params, qui est un objet contenant les paramètres de route dynamique pour la route actuelle.

ExempleURLparams
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

Les gestionnaires de route peuvent étendre l'API Web Response en retournant un objet NextResponse. Cela vous permet de facilement définir des cookies, des en-têtes, de rediriger et de réécrire. Voir la référence API.

Historique des versions

VersionModifications
v13.2.0Introduction des gestionnaires de route.