Laravel

Come creare una RESTful api con Laravel

Come creare una RESTful api con Laravel
LT
Luca Terribili
Autore

Nel mondo moderno dello sviluppo web, tutto ruota attorno alle API. Le app non vivono più isolate: parlano tra loro, condividono dati, sincronizzano utenti e gestiscono servizi esterni. Un frontend in Angular o React, un’app mobile in Flutter o Swift, oppure un microservizio in Node: tutti hanno bisogno di un backend solido e flessibile. È qui che entra in gioco Laravel, il framework PHP che da anni detta legge per eleganza, produttività e coerenza.

Laravel ti permette di costruire API RESTful in modo pulito, scalabile e sicuro, senza dover reinventare nulla. In questa guida vedremo come creare da zero un’API moderna, con autenticazione basata su Laravel Sanctum, validazione automatica, trasformazione dati tramite API Resource, gestione delle relazioni e risposta JSON ottimizzata.

L’obiettivo sarà creare una mini API per gestire tutorial con sottotutorial (relazioni padre-figlio), dotata di autenticazione e protetta da token. Il tutto con codice pulito, performante e facilmente estendibile.

Preparazione del progetto

La prima cosa da fare è creare un nuovo progetto Laravel. Se hai Composer installato, puoi farlo con un singolo comando:

Loading...

Una volta installato, esegui le migrazioni base:

Loading...

Laravel ti fornirà già una struttura ordinata: nel file routes/api.php andrai a definire tutte le rotte della tua API, che saranno automaticamente caricate con il middleware api.

Configurare Laravel Sanctum per l’autenticazione

Le API moderne devono essere protette, ma non sempre hai bisogno di un sistema JWT complesso. Laravel Sanctum è la soluzione più elegante: semplice, sicura e perfettamente integrata.

Installa Sanctum:

Loading...

Poi registra il middleware nel kernel API:

Loading...

Nel modello User, aggiungi il trait necessario:

Loading...

Ora puoi gestire token personali, login e logout in modo automatico, senza configurazioni complesse.

Creare il modello e la migrazione

Immaginiamo una struttura di tutorial nidificati. Ogni tutorial può avere dei “figli” e un ordine definito grazie a spatie/eloquent-sortable. Installiamolo:

Loading...

Creiamo il modello:

Loading...

E modifichiamo la migrazione:

Loading...

Ecco il modello:

Loading...

Definire le API Resource

Laravel Resource serve per controllare il formato JSON restituito dall’API, in modo coerente e pulito.
Creiamone una per i tutorial:

Loading...

Poi la modifichiamo:

Loading...

L’uso del @mixin serve solo a far capire a PHPStorm che $this è un modello Tutorial.
La chiamata TutorialResource::collection() permette di trasformare automaticamente tutti i figli in risorse a loro volta, generando JSON strutturato in modo ricorsivo.

Il controller RESTful

Laravel fornisce generatori di controller RESTful già pronti. Creiamolo:

Loading...

Il controller sarà così:

Loading...

Ogni metodo rappresenta un verbo HTTP: index per GET, store per POST, update per PUT, destroy per DELETE.
Laravel mappa tutto in automatico tramite Route::apiResource().

Le rotte API

Ora nel file routes/api.php basta una riga per creare l’intera struttura CRUD:

Loading...

Tutte le richieste a /api/tutorials saranno protette da token e passeranno per i metodi del controller.

Gestione dell’autenticazione

Laravel Sanctum ti permette di generare token utente per le chiamate API.
Puoi creare un semplice controller per la gestione dei token:

Loading...

E dentro scrivere:

Loading...

Le rotte pubbliche saranno:

Loading...

Dopo il login, il token ricevuto va inviato in ogni richiesta autenticata come Authorization: Bearer <token>.

Validazione e sicurezza

Laravel gestisce la validazione direttamente nel controller con $request->validate(), ma per API più complesse puoi creare FormRequest dedicati. Tutto questo evita input non validi o malevoli.
Sanctum invece protegge gli endpoint sensibili, assicurando che solo utenti autenticati possano creare, aggiornare o cancellare dati.

Risposta JSON e testing

Ogni risposta viene automaticamente serializzata in JSON, con codici di stato HTTP corretti (201 per creazione, 200 per successo, 404 se una risorsa non esiste).
Puoi testare facilmente la tua API con Postman o direttamente via curl:

Loading...

Conclusione

Laravel 10 offre tutto quello che serve per costruire API RESTful moderne: un ORM potente con Eloquent, un sistema di autenticazione elegante con Sanctum, validazione integrata, e soprattutto le API Resource, che permettono di restituire JSON puliti e coerenti.
Con pochi file e un po’ di attenzione all’architettura, puoi realizzare un backend sicuro, scalabile e perfettamente integrabile con qualsiasi frontend o app mobile.

Quando arrivi a vedere il tuo JSON pulito, con relazioni nidificate e token funzionanti, una sola cosa ti viene da dire:
Daje.

Vedi tutti →