Instructions

  1. Ajouter un nouvel endpoint :

    Vous devez modifier votre fichier de routage pour ajouter un nouvel endpoint qui accepte un paramètre de requête pour le nom. Cet endpoint permettra de rechercher des aliments par nom.

  2. Logique de recherche :

    Dans votre contrôleur, ajoutez une méthode pour gérer la requête de recherche par nom. Utilisez une requête SQL préparée avec un LIKE pour rechercher des aliments dont le nom contient la chaîne de caractères spécifiée.

  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 qui correspondent au critère de recherche.

Exemple de code

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

Ajoutez une nouvelle route pour gérer les requêtes GET qui recherchent des aliments par nom.

<?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 $url === 'foods/search' && $request_method === 'GET':
        $nom = $_GET['nom'] ?? '';
        $searchResults = $controller->searchFoodsByName($nom);
        echo json_encode($searchResults);
        break;

    // Autres routes existantes...
}
?>

Contrôleur (FoodsController.php) :

Ajoutez une méthode pour rechercher des aliments par nom.

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

class FoodsController {
    private $pdo;

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

    // Autres méthodes existantes...

    public function searchFoodsByName($nom) {
        $stmt = $this->pdo->prepare('SELECT * FROM foods WHERE name LIKE ?');
        $searchTerm = "%$nom%";
        $stmt->execute([$searchTerm]);
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}
?>

Explications :

  • Endpoint de recherche : L'endpoint GET /foods/search est ajouté pour rechercher des aliments par nom. Le paramètre nom est extrait de la requête GET et utilisé pour rechercher des aliments dont le nom contient la chaîne de caractères spécifiée.

  • Méthode de recherche : La méthode searchFoodsByName dans le contrôleur utilise une requête SQL préparée avec un LIKE pour sélectionner les aliments dont le nom contient la chaîne de caractères spécifiée.

  • 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 qui correspondent au critère de recherche comme prévu.

Ces corrections montrent comment ajouter un endpoint pour rechercher des aliments par nom 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.

Modifié le: samedi 7 juin 2025, 16:05