Instructions

  1. Ajouter un nouvel endpoint :

    Vous devez modifier votre fichier de routage pour ajouter un nouvel endpoint qui accepte un paramètre de type. Cet endpoint permettra de filtrer les aliments par type.

  2. Logique de filtrage :

    Dans votre contrôleur, ajoutez une méthode pour gérer la requête de filtrage par type. Utilisez une requête SQL préparée pour sélectionner les aliments dont le type correspond au paramètre fourni.

  3. Test de l'endpoint :

    Utilisez un outil comme Postman ou un navigateur pour tester le nouvel endpoint et vérifier qu'il retourne correctement les aliments filtrés par type.

Exemple de code

Fichier de routage (par exemple, back/routes/api.php) :

Ajoutez une nouvelle route pour gérer les requêtes GET qui filtrent les aliments par type.

<?php
require_once __DIR__ . '/../config/database.php';
require_once __DIR__ . '/../controllers/FoodsController.php';

$controller = new FoodsController($pdo);
$request_method = $_SERVER['REQUEST_METHOD'];
$url = $_GET['url'] ?? '';

switch (true) {
    // Autres routes existantes...

    case preg_match('/^foods\/type\/(.+)$/', $url, $matches) && $request_method === 'GET':
        $type = urldecode($matches[1]);
        $filteredFoods = $controller->getFoodsByType($type);
        echo json_encode($filteredFoods);
        break;

    // Autres routes existantes...
}
?>

Contrôleur (FoodsController.php) :

Ajoutez une méthode pour récupérer les aliments par type.

<?php
require_once __DIR__ . '/../models/Food.php';

class FoodsController {
    private $pdo;

    public function __construct($pdo) {
        $this->pdo = $pdo;
    }

    // Autres méthodes existantes...

    public function getFoodsByType($type) {
        $stmt = $this->pdo->prepare('SELECT * FROM foods WHERE type = ?');
        $stmt->execute([$type]);
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}
?>

Explications :

  • Endpoint de filtrage : L'endpoint GET /foods/type/{type} est ajouté pour filtrer les aliments par type. Le paramètre type est extrait de l'URL et utilisé pour filtrer les aliments.

  • Méthode de filtrage : La méthode getFoodsByType dans le contrôleur utilise une requête SQL préparée pour sélectionner les aliments dont le type correspond au paramètre fourni.

  • Test de l'endpoint : Vous pouvez tester cet endpoint en utilisant un outil comme Postman ou en accédant à l'URL directement dans un navigateur. Assurez-vous que l'endpoint retourne les aliments filtrés par type comme prévu.

Ces corrections montrent comment ajouter un endpoint pour filtrer les aliments par type dans une API PHP, en utilisant PDO pour interagir avec la base de données. Assurez-vous que votre base de données est correctement configurée et que les connexions PDO fonctionnent comme prévu.

Last modified: Saturday, 7 June 2025, 4:03 PM