12 - 馃敆 API Routes en Next.js
Aprende c贸mo crear endpoints API directamente dentro de tu proyecto de Next.js, sin necesidad de un servidor backend adicional.
馃 ¿Qu茅 son las API Routes?
Las API Routes son funciones del lado del servidor (Serverless Functions) que puedes crear dentro del propio proyecto Next.js.
Te permiten manejar solicitudes HTTP como si tuvieras un backend, pero sin configurar un servidor Node.js aparte.
Estas rutas se alojan dentro de la carpeta app/api/ o pages/api/ (seg煤n el router que uses).
app/
└─ api/
└─ hola/
└─ route.js
Cada carpeta dentro de api/ representa una ruta de tu API.
Por ejemplo, /api/hola ser谩 accesible desde tu navegador o mediante fetch.
馃挕 Ejemplo b谩sico de una ruta API
Creamos una API que responde con un mensaje JSON.
// app/api/hola/route.js
export async function GET(request) {
return Response.json({ mensaje: "馃憢 ¡Hola desde la API de Next.js!" });
}
Si visitas /api/hola ver谩s esta respuesta:
{
"mensaje": "馃憢 ¡Hola desde la API de Next.js!"
}
馃摝 Soporte para diferentes m茅todos HTTP
Cada archivo route.js puede manejar varios m茅todos HTTP: GET, POST, PUT, DELETE, etc.
// app/api/usuarios/route.js
export async function GET() {
return Response.json([
{ id: 1, nombre: "Jorge" },
{ id: 2, nombre: "Luc铆a" }
]);
}
export async function POST(request) {
const data = await request.json();
return Response.json({ mensaje: "Usuario creado", data });
}
馃敻 GET /api/usuarios → Devuelve una lista de usuarios.
馃敻 POST /api/usuarios → Recibe un JSON con datos nuevos.
fetch('/api/usuarios', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ nombre: 'Carlos' })
});
馃З Ejemplo pr谩ctico: API de productos
Vamos a crear una API que devuelva una lista de productos ficticios.
// app/api/productos/route.js
const productos = [
{ id: 1, nombre: "Teclado mec谩nico", precio: 59.99 },
{ id: 2, nombre: "Rat贸n inal谩mbrico", precio: 34.99 },
{ id: 3, nombre: "Monitor 27''", precio: 199.99 }
];
export async function GET() {
return Response.json(productos);
}
Si accedes a /api/productos, ver谩s:
[
{ "id": 1, "nombre": "Teclado mec谩nico", "precio": 59.99 },
{ "id": 2, "nombre": "Rat贸n inal谩mbrico", "precio": 34.99 },
{ "id": 3, "nombre": "Monitor 27''", "precio": 199.99 }
]
馃攼 Acceso desde el cliente
Desde tus componentes React, puedes consumir estas rutas API f谩cilmente usando fetch() o Axios.
// app/productos/page.js
"use client";
import { useEffect, useState } from "react";
export default function ProductosPage() {
const [productos, setProductos] = useState([]);
useEffect(() => {
fetch("/api/productos")
.then(res => res.json())
.then(data => setProductos(data));
}, []);
return (
<main className="p-6">
<h1 className="text-2xl font-bold">馃泹️ Lista de Productos</h1>
<ul className="mt-3">
{productos.map(p => (
<li key={p.id} className="border-b py-2">
{p.nombre} - ${p.precio}
</li>
))}
</ul>
</main>
);
}
馃З Resultado visual:
- 馃柋️ Teclado mec谩nico - $59.99
- 馃柌️ Rat贸n inal谩mbrico - $34.99
- 馃枼️ Monitor 27'' - $199.99
馃摌 Resumen
- 馃殌 Las API Routes permiten crear endpoints del lado del servidor dentro de Next.js.
- 馃摝 Cada carpeta en
app/api/es una ruta. - 馃攣 Puedes manejar varios m茅todos HTTP (GET, POST, PUT, DELETE).
- 馃挰 Se consumen f谩cilmente desde el cliente con
fetchoAxios.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias