Une API Symfony 7 (PHP 8.4) pour gérer un catalogue personnalisé de plantes et leurs photos associées.
- PHP >= 8.4
- Composer
- SQLite ou MySQL
-
Cloner le projet
git clone https://github.com/antoinegreuzard/plant-symfony-api cd plant-symfony-api -
Installer les dépendances PHP
composer install
-
Configurer l’environnement
cp .env .env.local
-
Configurer la base de données
- Modifier
.env.localpour utiliser SQLite (ou MySQL) - Exemple SQLite :
DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
Puis :
php bin/console doctrine:database:create php bin/console doctrine:migrations:migrate php bin/console doctrine:fixtures:load
- Modifier
-
Lancer le serveur
symfony server:start # ou php -S 127.0.0.1:8000 -t public
L’API est accessible via http://127.0.0.1:8000/api/
L’API utilise lexik/jwt-authentication-bundle pour l’authentification via JWT.
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /api/register/ |
Enregistrer un utilisateur |
| POST | /api/token/ |
Obtenir un token JWT |
| POST | /api/token/refresh/ |
Rafraîchir un token JWT |
👉 Ajouter le token dans l'en-tête :
Authorization: Bearer {token}
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /api/plants/ |
Liste paginée des plantes |
| POST | /api/plants/ |
Ajouter une nouvelle plante |
| GET | /api/plants/{id}/ |
Récupérer une plante |
| PUT | /api/plants/{id}/ |
Modifier une plante existante |
| DELETE | /api/plants/{id}/ |
Supprimer une plante |
/) fonctionnent toutes les deux.
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /api/plants/{id}/upload-photo/ |
Ajouter une photo à une plante |
| GET | /api/plants/{id}/photos/ |
Voir les photos associées à la plante |
Le projet utilise PHPUnit avec la surcouche Pest.
php bin/phpunit
# ou
vendor/bin/phpunitLe projet est configuré pour :
- Lancer les tests (PHPUnit)
- Vérifier les migrations
- Vérifier le code avec PHPStan / Lint Symfony
Ce projet est sous licence MIT. 📄
Développé avec ❤️ par Antoine Greuzard