Exercices back-end
Completion requirements
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
-
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}.
- Modifiez votre fichier de routage (par exemple,
-
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.
-
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
-
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}.
-
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
LIKEpour rechercher des aliments dont le nom contient la chaîne de caractères spécifiée.
-
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.
Last modified: Saturday, 7 June 2025, 4:00 PM