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.
Exemple | URL | params |
---|---|---|
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
Version | Modifications |
---|---|
v13.2.0 | Introduction des gestionnaires de route. |