Cómo Crear un Endpoint en una API con Next.js 15 y TypeScript imagen

Cómo Crear un Endpoint en una API con Next.js 15 y TypeScript

Next.js 15 simplifica la creación de APIs con su arquitectura moderna. En esta guía, aprenderás a crear un endpoint utilizando TypeScript para mejorar la seguridad y la mantenibilidad de tu código.

¿Qué es un endpoint?

Un endpoint es una URL específica que permite a los clientes interactuar con tu API. Los endpoints suelen estar asociados a operaciones como obtener datos, crear recursos o realizar búsquedas.

Pasos para crear un endpoint

1. Configura TypeScript en tu proyecto

Si aún no tienes TypeScript configurado en tu proyecto de Next.js, instálalo con:

npm install --save-dev typescript @types/react @types/node

Luego, inicia el servidor de desarrollo para generar un archivo tsconfig.json automáticamente: ñ

npm run dev

2. Crea un archivo para tu endpoint

En Next.js, los endpoints se definen dentro de la carpeta app/api. Cada archivo dentro de esta carpeta representa un endpoint. Por ejemplo, crea un archivo llamado productos/route.ts:

// app/api/productos/route.ts
import { NextRequest, NextResponse } from 'next/server';

type Producto = {
    id: number;
    nombre: string;
    precio: number;
};

const productos: Producto[] = [
    { id: 1, nombre: 'Camiseta', precio: 19.99 },
    { id: 2, nombre: 'Pantalón', precio: 39.99 },
];

export async function GET() {
    return NextResponse.json({
        message: 'Lista de productos',
        productos,
    });
}

export async function POST(request: NextRequest) {
    try {
        const body = await request.json();
        const nuevoProducto: Producto = {
            id: Date.now(),
            nombre: body.nombre,
            precio: body.precio,
        };

        productos.push(nuevoProducto);

        return NextResponse.json({
            message: 'Producto creado',
            producto: nuevoProducto,
        }, { status: 201 });
    } catch (error) {
        return NextResponse.json({ error: 'Error al procesar la solicitud' }, { status: 400 });
    }
}

3. Probar el endpoint

Ejecuta tu proyecto Next.js:

npm run dev

Accede a los siguientes endpoints:

Ejemplo de solicitud POST

{
    "nombre": "Gorra",
    "precio": 14.99
}

Respuesta esperada

{
    "message": "Producto creado",
    "producto": {
        "id": 1674059871234,
        "nombre": "Gorra",
        "precio": 14.99
    }
}

4. Validar datos con TypeScript (opcional)

Puedes mejorar la validación de los datos utilizando bibliotecas como zod. Instala zod con:

npm install zod

Actualiza el código del endpoint para validar los datos:

import { z } from 'zod';

const productoSchema = z.object({
    nombre: z.string().min(1, 'El nombre es obligatorio'),
    precio: z.number().positive('El precio debe ser un número positivo'),
});

export async function POST(request: NextRequest) {
    try {
        const body = await request.json();
        const datos = productoSchema.parse(body);

        const nuevoProducto = {
            id: Date.now(),
            ...datos,
        };

        productos.push(nuevoProducto);

        return NextResponse.json({
            message: 'Producto creado',
            producto: nuevoProducto,
        }, { status: 201 });
    } catch (error) {
        return NextResponse.json({
            error: error instanceof z.ZodError ? error.errors : 'Error inesperado',
        }, { status: 400 });
    }
}

Conclusión

Con Next.js 15 y TypeScript, puedes construir endpoints seguros y eficientes en cuestión de minutos. Esta estructura te permite crear APIs modernas y escalables para tus proyectos. ¡Empieza hoy y lleva tus aplicaciones al siguiente nivel!