Démarrage rapide
Laravel API Generator génère une API REST complète, structurée comme en production, depuis une seule commande artisan : modèle, migration, contrôleur, service, DTO, form request, resource, policy, factory, seeder et tests écrits.

Prérequis
- PHP >= 8.2 (>= 8.3 pour Laravel 13)
- Laravel 10.x, 11.x, 12.x ou 13.x
Installation
composer require --dev nameless/laravel-api-generatorLe service provider est auto-découvert. Aucune configuration requise.
Zéro lock-in
Le générateur est une dépendance de dev : il ne s'exécute jamais en production (composer install --no-dev l'exclut), et le code généré est du Laravel pur, sans dépendance à ce package (pas de classes de base, pas de helpers à l'exécution). Vous pouvez même supprimer le générateur ensuite : tout continue de fonctionner.
Votre première API
php artisan make:fullapi Post --fields="title:string,content:text,published:boolean"Puis :
php artisan migrate
php artisan testLa suite passe dès la génération, avec de vraies assertions sur de vrais endpoints, là où la plupart des générateurs livrent des squelettes à remplir.
Ce qui est généré
Une commande crée 12 fichiers par entité et enregistre la route API :
| Couche | Fichier | Emplacement |
|---|---|---|
| Modèle | Post.php | app/Models/ |
| Contrôleur | PostController.php | app/Http/Controllers/ |
| Service | PostService.php | app/Services/ |
| DTO | PostDTO.php | app/DTO/ |
| Request | PostRequest.php | app/Http/Requests/ |
| Resource | PostResource.php | app/Http/Resources/ |
| Policy | PostPolicy.php | app/Policies/ |
| Factory | PostFactory.php | database/factories/ |
| Seeder | PostSeeder.php | database/seeders/ |
| Migration | *_create_posts_table.php | database/migrations/ |
| Test feature | PostControllerTest.php | tests/Feature/ |
| Test unitaire | PostServiceTest.php | tests/Unit/ |
| Route | entrée apiResource | routes/api.php |
L'architecture générée
Chaque requête traverse une structure en couches propre :
Le contrôleur reste fin et délègue au service :
public function store(PostRequest $request)
{
$dto = PostDTO::fromRequest($request);
$post = $this->service->create($dto);
return new PostResource($post);
}La logique métier vit dans PostService, les données traversent les couches sous forme d'un PostDTO typé et readonly. Quand votre API grandit, les bons emplacements existent déjà.
Des modèles que votre IDE comprend
Chaque modèle généré embarque un bloc PHPDoc complet : champs, colonnes FK, relations, timestamps :
/**
* @property int $id
* @property string $title
* @property \App\Enums\Status $status
* @property \Illuminate\Support\Carbon|null $published_at
* @property-read \Illuminate\Database\Eloquent\Collection<int, Comment> $comments
*/
class Post extends ModelL'autocomplétion fonctionne immédiatement dans VS Code et PhpStorm, sans ide-helper pour le code généré.
