route.js

Los Manejadores de Ruta (Route Handlers) permiten crear controladores de solicitud personalizados para una ruta específica utilizando las APIs Web Request y Response.

Métodos HTTP

Un archivo route permite crear controladores de solicitud personalizados para una ruta dada. Se admiten los siguientes métodos HTTP: GET, POST, PUT, PATCH, DELETE, HEAD y 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` no está definido, Next.js implementará automáticamente `OPTIONS` y establecerá el encabezado `Allow` de Response apropiado según los otros métodos definidos en el manejador de ruta.
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` no está definido, Next.js implementará automáticamente `OPTIONS` y establecerá el encabezado `Allow` de Response apropiado según los otros métodos definidos en el manejador de ruta.
export async function OPTIONS(request) {}

Importante: Los Manejadores de Ruta solo están disponibles dentro del directorio app. No es necesario usar Rutas API (pages) y Manejadores de Ruta (app) juntos, ya que los Manejadores de Ruta deberían poder manejar todos los casos de uso.

Parámetros

request (opcional)

El objeto request es un objeto NextRequest, que es una extensión de la API Web Request. NextRequest brinda mayor control sobre la solicitud entrante, incluyendo acceso fácil a cookies y un objeto URL extendido y analizado nextUrl.

context (opcional)

app/dashboard/[team]/route.js
export async function GET(request, context: { params }) {
  const team = params.team // '1'
}

Actualmente, el único valor de context es params, que es un objeto que contiene los parámetros de ruta dinámica para la ruta actual.

EjemploURLparams
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

Los Manejadores de Ruta pueden extender la API Web Response devolviendo un objeto NextResponse. Esto permite configurar fácilmente cookies, encabezados, redirecciones y reescrituras. Ver la referencia de API.

Historial de versiones

VersiónCambios
v13.2.0Se introducen los manejadores de ruta.