Le API REST sono il modo standard con cui le applicazioni moderne comunicano. Un'applicazione frontend (costruita ad esempio con React) può richiedere dati a un backend PHP, che risponde in formato JSON. Vediamo come costruire un endpoint API molto semplice senza usare un framework.
La Struttura del Progetto
Il nostro obiettivo è creare un endpoint che, quando chiamato all'URL `/api/posts`, restituisca una lista di articoli del blog. Useremo un "front controller", un singolo file PHP (`index.php`) che gestisce tutte le richieste.
1. Il Front Controller (`index.php`)
Questo file si occupa del routing, cioè di capire quale risorsa è stata richiesta e di agire di conseguenza.
// Impostiamo l'header per indicare che la risposta sarà in formato JSON
header("Content-Type: application/json; charset=UTF-8");
// Analizziamo l'URL richiesto
$request_uri = $_SERVER['REQUEST_URI'];
// Un routing molto semplice
switch ($request_uri) {
case '/api/posts':
// Se la richiesta è per i post, gestiscila
handle_posts_request();
break;
default:
// Altrimenti, restituisci un errore 404
http_response_code(404);
echo json_encode(["message" => "Endpoint non trovato."]);
break;
}
2. Il Gestore della Richiesta (`handle_posts_request`)
Questa funzione conterrà la logica per recuperare i dati (dal nostro `data.php` o da un database) e restituirli.
function handle_posts_request() {
// Verifichiamo il metodo HTTP. Vogliamo solo richieste GET.
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
http_response_code(405); // Method Not Allowed
echo json_encode(["message" => "Metodo non permesso."]);
return;
}
// In un'applicazione reale, qui faresti una query al database.
// Per semplicità, usiamo un array statico.
$posts = [
["id" => 1, "title" => "Il mio primo post"],
["id" => 2, "title" => "Il mio secondo post"]
];
http_response_code(200); // OK
echo json_encode($posts);
}
3. Configurazione del Server Web (`.htaccess`)
Per far funzionare il routing, abbiamo bisogno che tutte le richieste vengano reindirizzate al nostro `index.php`. Se usi Apache, puoi farlo con un file `.htaccess`:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Questo è un esempio basilare, ma mostra i principi fondamentali: un router che analizza l'URL, dei gestori che contengono la logica e l'uso di `json_encode()` per restituire i dati. Framework come Laravel o Symfony automatizzano e rendono molto più robusto questo processo.
Hai bisogno di una soluzione su misura?
Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.
Richiedi una consulenza