Exercice 1 : Ajout d'un endpoint pour filtrer les aliments par type

Objectif

L'objectif de cet exercice est d'ajouter un nouvel endpoint à votre API qui permet de filtrer les aliments par type.

Instructions

  1. Ajouter un nouvel endpoint :

    • Modifiez votre fichier de routage (par exemple, back/routes/api.php) pour ajouter un nouvel endpoint qui accepte un paramètre de type.
    • L'URL de l'endpoint pourrait ressembler à /foods/type/{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

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

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

Exercice 2 : Ajout d'un champ de recherche pour les aliments

Objectif

L'objectif de cet exercice est d'ajouter un endpoint de recherche à votre API qui permet de rechercher des aliments par nom.

Instructions

  1. Ajouter un nouvel endpoint :

    • Modifiez votre fichier de routage pour ajouter un nouvel endpoint qui accepte un paramètre de requête pour le nom.
    • L'URL de l'endpoint pourrait ressembler à /foods/search?nom={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

// Dans back/routes/api.php
case $url === 'foods/search' && $request_method === 'GET':
    $nom = $_GET['nom'] ?? '';
    $searchResults = $controller->searchFoodsByName($nom);
    echo json_encode($searchResults);
    break;

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

Conseils

  • Assurez-vous que votre base de données est correctement configurée et que les connexions PDO fonctionnent comme prévu.
  • Testez chaque fonctionnalité individuellement pour vous assurer qu'elle fonctionne correctement avant de passer à la suivante.
  • Utilisez des messages d'erreur clairs pour aider au débogage et à la compréhension des problèmes potentiels.

Ces exercices vous permettront de pratiquer l'ajout de fonctionnalités de filtrage et de recherche dans une API PHP, renforçant ainsi vos compétences en développement back-end.

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