Une API Laravel 12 (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-laravel-api cd plant-laravel-api -
Installer les dépendances PHP
composer install
-
Copier le fichier d'environnement
cp .env.example .env php artisan key:generate
-
Configurer la base de données
- Modifier
.envpour utiliser SQLite (ou MySQL selon tes besoins) - Exemple SQLite :
DB_CONNECTION=sqlite DB_DATABASE=database/database.sqlite
touch database/database.sqlite php artisan migrate --seed
- Modifier
-
Lancer le serveur
php artisan serve
L'API est accessible sur http://127.0.0.1:8000/api/
Le projet utilise tymon/jwt-auth pour gérer l'authentification.
| 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} pour accéder aux routes protégées.
| 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 |
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /api/plants/{id}/upload-photo/ |
Ajouter une photo à une plante |
| GET | /api/plants/{id}/photos/ |
Récupérer les photos d'une plante |
Le projet utilise Pest pour les tests unitaires et fonctionnels.
php artisan testphp artisan test --testsuite=Unitphp artisan test --testsuite=FeatureLe projet utilise GitHub Actions pour :
- Lancer les tests avec Pest
- Vérifier les migrations
- Lint le code automatiquement
Ce projet est sous licence MIT. 📄