Next.js API routes: voorbeelden van Route Handlers

Voorbeelden van Next.js Route Handlers

Next.js API routes (Route Handlers): GET, POST, auth | We.Inc

Kopieerbare voorbeelden van Next.js Route Handlers voor de App Router: GET met query params, POST met validatie, dynamische params als promise, auth-controles, CORS en webhooks.

In de App Router is een API-endpoint een route.ts-bestand binnen app, bijvoorbeeld app/api/todos/route.ts. Exporteer async functies die vernoemd zijn naar HTTP-methoden zoals GET en POST; elke functie ontvangt een Request en geeft een Response terug, meestal Response.json(). Dynamische segmenten komen binnen als een params-promise die u await. GET-handlers zijn sinds Next.js 15 standaard dynamisch.

Basis van Route Handlers

API routes in de Pages Router gebruikten req- en res-objecten. Route Handlers gebruiken in plaats daarvan de standaard Web Request en Response, en daar struikelt iedereen over die oudere antwoorden kopieert. Hieronder staan de patronen die u voor een echte app nodig hebt, elk geschreven voor de huidige App Router, plus een kleine tester die laat zien welke statuscodes een valideerende POST hoort terug te sturen.

Veelgestelde vragen

Zijn Next.js API routes verouderd?

pages/api-routes werken nog steeds in de Pages Router. In de App Router is het equivalent een Route Handler, een route.ts-bestand dat Web Request- en Response-objecten gebruikt en geen bodyParser-configuratie nodig heeft.

Welke HTTP-methoden kan een route.ts exporteren?

GET, POST, PUT, PATCH, DELETE, HEAD en OPTIONS. Een methode aanroepen die u niet hebt geëxporteerd, geeft 405 Method Not Allowed terug.

Waarom moet ik params awaiten?

Sinds Next.js 15 is params in het context-argument een promise. Schrijf const { id } = await params. Het hulptype RouteContext, gegenereerd door next dev, next build of next typegen, geeft u getypeerde params op basis van het routepad.

Worden GET Route Handlers gecachet?

Standaard niet meer. Next.js 15 maakte GET-handlers dynamisch in plaats van statisch. Zet caching weer aan met export const dynamic = 'force-static' of een revalidate-waarde. Met Cache Components ingeschakeld zet u use cache in een hulpfunctie die de handler aanroept, niet in de body van de handler.

Moet ik een Route Handler of een Server Action gebruiken?

Gebruik een Server Action voor wijzigingen die door uw eigen formulieren en knoppen worden gestart. Gebruik een Route Handler als iets buiten uw React-boom de URL aanroept: een mobiele app, een webhook, een cronjob of een script van derden.

Bestandsindeling

Statuscodes die clients begrijpen

Beveiligingschecklist

Voorbeelden van Route Handlers

GET met een zoekquery

app/api/todos/route.ts. De parameter q filtert de lijst; een lege query geeft alles terug.

POST met Zod-validatie en een auth-controle

Geeft 401 terug zonder sessie, 400 met veldfouten bij een foute body, en anders 201 met het nieuwe record. getSession staat voor uw auth-bibliotheek.

Dynamisch segment met ge-awaite params

app/api/todos/[id]/route.ts. params is een promise in Next.js 15 en later.

CORS voor één vertrouwde origin

Beantwoordt de preflight van de browser en het echte request met dezelfde toegestane origin.

De handler aanroepen vanuit een Client Component

De fetch-helper leest eerst de statuscode, zodat het formulier veldfouten uit een 400 kan tonen.

API routes in de Pages Router vs Route Handlers

Zelfde taak, andere API's

POST-tester

Bewerk een JSON-body, kies of de aanroeper is ingelogd, en zie welke statuscode en welk antwoord het valideerende POST-voorbeeld zou terugsturen.

Methode

Request-body (JSON)

Aanroeper heeft een geldige sessie

Antwoord

PUT toont de 405 die Next.js stuurt voor een methode die het bestand niet exporteert.

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap