Rute API în SvelteKit: Crearea Endpoint-urilor RESTful cu fișierele +server.ts în Svelte & SvelteKit

SvelteKit Backend SvelteKit 2

Ghid complet pentru endpoint-uri API în SvelteKit: implementarea metodelor GET, POST, PUT, DELETE în fișiere +server.ts și returnarea răspunsurilor JSON cu helper-ul json().

Sintaxă
export const GET = async ({ url }) => json({ status: 'ok' })

Pentru a expune rute API (JSON, XML sau fișiere binare) consumabile de aplicații mobile sau servicii externe, SvelteKit folosește convenția de fișiere +server.ts (sau +server.js). Fiecare metodă HTTP corespunde unei funcții exportate cu același nume.

Exemplu de API complet (src/routes/api/utilizatori/+server.ts)
import { json } from '@sveltejs/kit';
import type { RequestHandler } from './$types';

// Metoda GET: Returnează lista de utilizatori
export const GET: RequestHandler = async ({ url }) => {
    const limita = Number(url.searchParams.get('limita') ?? '10');
    
    const utilizatori = [
        { id: 1, nume: "Alex Popescu", rol: "admin" },
        { id: 2, nume: "Maria Ionescu", rol: "editor" }
    ];

    return json(utilizatori.slice(0, limita));
};

// Metoda POST: Creează un utilizator nou
export const POST: RequestHandler = async ({ request }) => {
    const corp = await request.json();
    
    if (!corp.nume) {
        return json({ eroare: "Câmpul 'nume' este obligatoriu!" }, { status: 400 });
    }

    const utilizatorNou = { id: Date.now(), ...corp };
    return json(utilizatorNou, { status: 201 });
};