API Route Next.js: Esempi di Route Handler

Esempi di Route Handler Next.js

API Route Next.js (Route Handler): GET, POST, Auth | We.Inc

Esempi di Route Handler Next.js per l'App Router da copiare: GET con parametri di query, POST con validazione, parametri dinamici come promise, controlli di autenticazione, CORS e webhook.

Nell'App Router, un endpoint API è un file route.ts dentro app, per esempio app/api/todos/route.ts. Esporta funzioni async con il nome dei metodi HTTP, come GET e POST; ognuna riceve una Request e restituisce una Response, di solito Response.json(). I segmenti dinamici arrivano come una promise params da attendere con await. Da Next.js 15 gli handler GET sono dinamici per impostazione predefinita.

Basi dei Route Handler

Le API route del Pages Router usavano gli oggetti req e res. I Route Handler usano invece gli standard Web Request e Response, e questo manda in confusione chi copia risposte più vecchie. Qui sotto trovi i pattern che ti servono per un'app reale, ognuno scritto per l'App Router attuale, più un piccolo tester che mostra i codici di stato che un POST con validazione dovrebbe restituire.

Domande frequenti

Le API route di Next.js sono deprecate?

Le route pages/api funzionano ancora nel Pages Router. Nell'App Router l'equivalente è un Route Handler, un file route.ts che usa gli oggetti Web Request e Response e non richiede alcuna configurazione di bodyParser.

Quali metodi HTTP può esportare un route.ts?

GET, POST, PUT, PATCH, DELETE, HEAD e OPTIONS. Chiamare un metodo che non hai esportato restituisce 405 Method Not Allowed.

Perché devo usare await su params?

Da Next.js 15, params nell'argomento context è una promise. Scrivi const { id } = await params. Il tipo helper RouteContext, generato da next dev, next build o next typegen, ti dà params tipizzati a partire dal percorso della route.

I Route Handler GET vengono messi in cache?

Non più per impostazione predefinita. Next.js 15 ha reso gli handler GET dinamici invece che statici. Puoi riattivare la cache con export const dynamic = 'force-static' o un valore di revalidate. Con Cache Components attivo, metti use cache in una funzione helper chiamata dall'handler, non nel corpo dell'handler.

Meglio un Route Handler o una Server Action?

Usa una Server Action per le modifiche attivate dai tuoi form e pulsanti. Usa un Route Handler quando qualcosa al di fuori del tuo albero React chiama l'URL: un'app mobile, un webhook, un cron job o uno script di terze parti.

Struttura dei file

Codici di stato che i client capiscono

Checklist di sicurezza

Esempi di Route Handler

GET con una query di ricerca

app/api/todos/route.ts. Il parametro q filtra la lista; una query vuota restituisce tutto.

POST con validazione Zod e controllo di autenticazione

Restituisce 401 senza sessione, 400 con gli errori dei campi per un body non valido, altrimenti 201 con il nuovo record. getSession sta al posto della tua libreria di autenticazione.

Segmento dinamico con params attesi

app/api/todos/[id]/route.ts. params è una promise da Next.js 15 in poi.

CORS per un'unica origine fidata

Risponde alla richiesta preflight del browser e alla richiesta vera con la stessa origine consentita.

Chiamare l'handler da un Client Component

L'helper di fetch legge prima il codice di stato, così il form può mostrare gli errori dei campi di un 400.

API route del Pages Router e Route Handler a confronto

Stesso lavoro, API diverse

Tester POST

Modifica un body JSON, scegli se il chiamante ha effettuato l'accesso e guarda il codice di stato e la risposta che l'esempio POST con validazione restituirebbe.

Metodo

Body della richiesta (JSON)

Il chiamante ha una sessione valida

Risposta

PUT mostra il 405 che Next.js invia per un metodo che il file non esporta.

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito