Creazione di un Endpoint API RESTful per la Gestione dei Prodotti in PHP

by theArchitect
SHARE
Creazione di un Endpoint API RESTful per la Gestione dei Prodotti in PHP
© Guida-HTML5.it

Introduzione

In questo tutorial, esploreremo come creare un endpoint API RESTful per la gestione dei prodotti utilizzando PHP. Le API RESTful sono un modo potente per consentire la comunicazione tra client e server, e la gestione dei prodotti è un caso d´uso comune in molte applicazioni web. Impareremo a creare un endpoint che permetta di eseguire operazioni CRUD (Create, Read, Update, Delete) sui prodotti.

Codice completo

Di seguito è riportato un esempio completo di un endpoint API RESTful per la gestione dei prodotti. Utilizzeremo PDO per interagire con un database MySQL.

<?php
// Configurazione del database
$host = ´localhost´;
$db = ´my_database´;
$user = ´my_user´;
$pass = ´my_password´;
$charset = ´utf8mb4´;

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];

try {
    $pdo = new PDO($dsn, $user, $pass, $options);
} catch (PDOException $e) {
    throw new PDOException($e->getMessage(), (int)$e->getCode());
}

// Imposta l´header per la risposta JSON
header(´Content-Type: application/json´);

// Ottieni il metodo della richiesta
$method = $_SERVER[´REQUEST_METHOD´];

// Gestisci le richieste in base al metodo
switch ($method) {
    case ´GET´:
        // Recupera tutti i prodotti
        $stmt = $pdo->query(´SELECT * FROM products´);
        $products = $stmt->fetchAll();
        echo json_encode($products);
        break;

    case ´POST´:
        // Aggiungi un nuovo prodotto
        $data = json_decode(file_get_contents(´php://input´), true);
        $stmt = $pdo->prepare(´INSERT INTO products (name, price) VALUES (?, ?)´);
        $stmt->execute([$data[´name´], $data[´price´]]);
        echo json_encode([´status´ => ´success´, ´id´ => $pdo->lastInsertId()]);
        break;

    case ´PUT´:
        // Aggiorna un prodotto esistente
        $data = json_decode(file_get_contents(´php://input´), true);
        $stmt = $pdo->prepare(´UPDATE products SET name = ?, price = ? WHERE id = ?´);
        $stmt->execute([$data[´name´], $data[´price´], $data[´id´]]);
        echo json_encode([´status´ => ´success´]);
        break;

    case ´DELETE´:
        // Elimina un prodotto
        $data = json_decode(file_get_contents(´php://input´), true);
        $stmt = $pdo->prepare(´DELETE FROM products WHERE id = ?´);
        $stmt->execute([$data[´id´]]);
        echo json_encode([´status´ => ´success´]);
        break;

    default:
        http_response_code(405);
        echo json_encode([´status´ => ´method_not_allowed´]);
        break;
}
?>

Spiegazione

Analizziamo il codice passo dopo passo:

  • Configurazione del database: Iniziamo configurando i parametri di connessione al database MySQL utilizzando PDO.
  • Impostazione dell´header: Impostiamo l´header della risposta a application/json per indicare che stiamo restituendo dati in formato JSON.
  • Gestione dei metodi: Utilizziamo un switch per gestire le diverse richieste HTTP (GET, POST, PUT, DELETE).
  • GET: Recuperiamo tutti i prodotti dal database e li restituiamo come JSON.
  • POST: Aggiungiamo un nuovo prodotto utilizzando i dati forniti nel corpo della richiesta.
  • PUT: Aggiorniamo un prodotto esistente in base all´ID fornito.
  • DELETE: Eliminiamo un prodotto specificato dall´ID.

Best practice

Quando si sviluppano API RESTful, è importante seguire alcune best practice:

  • Validazione dei dati: Assicurati di validare i dati in ingresso per evitare errori e vulnerabilità di sicurezza.
  • Gestione degli errori: Implementa una gestione degli errori adeguata per fornire risposte chiare in caso di problemi.
  • Documentazione: Documenta la tua API in modo che gli sviluppatori possano capire come utilizzarla facilmente.
  • Versionamento: Considera di versionare la tua API per gestire eventuali modifiche future senza rompere la compatibilità.

Riepilogo

In questo tutorial, abbiamo creato un endpoint API RESTful per la gestione dei prodotti in PHP. Abbiamo implementato le operazioni CRUD utilizzando PDO per interagire con un database MySQL. Seguendo le best practice, puoi garantire che la tua API sia robusta e facile da usare.

Approfondisci con risorse ufficiali

SHARE