Routes API Next.js : exemples de Route Handlers

Exemples de Route Handlers Next.js

Routes API Next.js (Route Handlers) : GET, POST, authentification | We.Inc

Des exemples de Route Handlers Next.js à copier pour l'App Router : GET avec paramètres de requête, POST avec validation, params dynamiques sous forme de promesse, contrôles d'authentification, CORS et webhooks.

Dans l'App Router, un endpoint d'API est un fichier route.ts placé dans app, par exemple app/api/todos/route.ts. Exportez des fonctions async nommées d'après les méthodes HTTP, comme GET et POST ; chacune reçoit une Request et renvoie une Response, généralement Response.json(). Les segments dynamiques arrivent sous forme de promesse params que vous attendez avec await. Depuis Next.js 15, les handlers GET sont dynamiques par défaut.

Les bases des Route Handlers

Les routes API du Pages Router utilisaient des objets req et res. Les Route Handlers utilisent à la place les objets Web standard Request et Response, ce qui piège quiconque copie d'anciennes réponses. Voici les modèles dont vous aurez besoin pour une vraie application, chacun écrit pour l'App Router actuel, plus un petit testeur qui montre les codes de statut qu'un POST avec validation doit renvoyer.

Questions fréquentes

Les routes API de Next.js sont-elles obsolètes ?

Les routes pages/api fonctionnent toujours dans le Pages Router. Dans l'App Router, l'équivalent est un Route Handler, un fichier route.ts qui utilise les objets Web Request et Response et ne nécessite aucune configuration bodyParser.

Quelles méthodes HTTP un route.ts peut-il exporter ?

GET, POST, PUT, PATCH, DELETE, HEAD et OPTIONS. Appeler une méthode que vous n'avez pas exportée renvoie 405 Method Not Allowed.

Pourquoi faut-il attendre params avec await ?

Depuis Next.js 15, params dans l'argument de contexte est une promesse. Écrivez const { id } = await params. Le type utilitaire RouteContext, généré par next dev, next build ou next typegen, vous donne des params typés d'après le chemin de la route.

Les Route Handlers GET sont-ils mis en cache ?

Plus par défaut. Next.js 15 a fait passer les handlers GET de statiques à dynamiques. Réactivez la mise en cache avec export const dynamic = 'force-static' ou une valeur revalidate. Avec Cache Components activé, placez use cache dans une fonction utilitaire appelée par le handler, pas dans le corps du handler.

Faut-il utiliser un Route Handler ou une Server Action ?

Utilisez une Server Action pour les mutations déclenchées par vos propres formulaires et boutons. Utilisez un Route Handler quand quelque chose d'extérieur à votre arbre React appelle l'URL : une application mobile, un webhook, une tâche cron ou un script tiers.

Organisation des fichiers

Des codes de statut que les clients comprennent

Checklist de sécurité

Exemples de Route Handlers

GET avec une requête de recherche

app/api/todos/route.ts. Le paramètre q filtre la liste ; une requête vide renvoie tout.

POST avec validation Zod et contrôle d'authentification

Renvoie 401 sans session, 400 avec les erreurs par champ pour un corps invalide, et 201 avec le nouvel enregistrement sinon. getSession remplace votre bibliothèque d'authentification.

Segment dynamique avec params attendus

app/api/todos/[id]/route.ts. params est une promesse à partir de Next.js 15.

CORS pour une seule origine de confiance

Répond à la requête préliminaire du navigateur et à la vraie requête avec la même origine autorisée.

Appeler le handler depuis un Client Component

La fonction fetch lit d'abord le code de statut, pour que le formulaire puisse afficher les erreurs par champ d'un 400.

Routes API du Pages Router et Route Handlers

Même tâche, API différentes

Testeur POST

Modifiez un corps JSON, indiquez si l'appelant est connecté, et voyez le code de statut et la réponse que renverrait l'exemple POST avec validation.

Méthode

Corps de la requête (JSON)

L'appelant a une session valide

Réponse

PUT montre le 405 que Next.js renvoie pour une méthode que le fichier n'exporte pas.

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site