La commande make:fullapi
make:fullapi est le cœur du package. Elle accepte un nom d'entité avec des champs en ligne, ou lit un fichier de schéma, un diagramme Mermaid ou votre base de données existante.
Usage de base
php artisan make:fullapi Post --fields="title:string,content:text,published:boolean"Soft deletes
php artisan make:fullapi Post --fields="title:string,content:text" --soft-deletesAjoute le trait SoftDeletes, une colonne softDeletes() dans la migration, les méthodes restore() / forceDelete(), et deux routes supplémentaires :
POST /api/posts/{id}/restore
DELETE /api/posts/{id}/force-deleteAuthentification Sanctum
php artisan make:fullapi Post --fields="title:string" --authGénère un système d'authentification par token complet : AuthController (register, login, logout, user), LoginRequest, RegisterRequest, les routes publiques d'auth, et enveloppe vos routes de ressources dans le middleware auth:sanctum.
| Méthode | Route | Accès |
|---|---|---|
POST | /api/register | Public |
POST | /api/login | Public |
POST | /api/logout | auth:sanctum |
GET | /api/user | auth:sanctum |
GET | /api/posts | auth:sanctum (vos ressources exigent aussi un token) |
Installez ensuite Sanctum s'il n'est pas déjà présent :
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrateCollection Postman
php artisan make:fullapi Post --fields="title:string" --postmanExporte un postman_collection.json (schéma v2.1) à la racine du projet : un dossier par entité avec les requêtes List, Create, Show, Update et Delete pré-remplies avec des données d'exemple. Voir Doc API & Postman.
Spatie QueryBuilder
composer require spatie/laravel-query-builder
php artisan make:fullapi Post --fields="title:string,content:text" --query-builderLes endpoints d'index deviennent filtrables et triables via le standard communautaire spatie/laravel-query-builder :
GET /api/posts?filter[title]=laravel&sort=-created_atLe flag fonctionne avec tous les modes de génération, et query_builder: true peut être défini globalement ou par entité dans un fichier de schéma.
Sans le flag, les endpoints index générés supportent quand même un filtrage simple sur tout champ fillable (GET /api/posts?published=true) ; les autres paramètres sont ignorés silencieusement.
Tests Pest
php artisan make:fullapi Post --fields="title:string" --pestGénère des tests au style it(...) / expect(...) au lieu de classes PHPUnit, à couverture égale. Voir Tests générés.
Assistant interactif
php artisan make:fullapi --interactiveUn assistant pas à pas : nom de l'entité, champs un par un (type, nullable, unique, valeur par défaut), relations, options, et un aperçu complet avant génération. Idéal pour configurer des contraintes indisponibles dans la syntaxe --fields.
Régénérer certains fichiers avec --only=
Pour reconstruire une Resource ou un Test sans toucher au reste :
php artisan make:fullapi Post --fields="title:string,content:text" --only=FeatureTest,UnitTestQuand --only= est présent, la migration, la route apiResource et l'enregistrement dans DatabaseSeeder sont laissés intacts : seuls les artefacts listés sont réécrits.
Types disponibles : Model, Controller, Service, DTO, Request, Resource, Migration, Factory, Seeder, Policy, FeatureTest, UnitTest.
Supprimer une entité
php artisan delete:fullapi PostSupprime tous les fichiers générés, désenregistre le seeder de DatabaseSeeder.php, et nettoie les routes de l'entité dans routes/api.php et routes/web.php. Appelée sans nom d'entité, la commande supprime toutes les entités définies dans class_data.json.
Si d'anciennes suppressions ont laissé des routes pointant vers des contrôleurs disparus (la fameuse ReflectionException de route:list), purgez-les :
php artisan api-generator:clean-routes --dry-runphp artisan api-generator:clean-routesToutes les options combinées
php artisan make:fullapi Post --fields="title:string,content:text" --soft-deletes --postman --auth --pestLa liste complète des options est dans la Référence CLI.
