Skip to content

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.

La même entité à la main prend environ deux heures ; make:fullapi le fait en trente secondes

Prérequis

  • PHP >= 8.2 (>= 8.3 pour Laravel 13)
  • Laravel 10.x, 11.x, 12.x ou 13.x

Installation

bash
composer require --dev nameless/laravel-api-generator

Le 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

bash
php artisan make:fullapi Post --fields="title:string,content:text,published:boolean"

Puis :

bash
php artisan migrate
php artisan test

La 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 :

CoucheFichierEmplacement
ModèlePost.phpapp/Models/
ContrôleurPostController.phpapp/Http/Controllers/
ServicePostService.phpapp/Services/
DTOPostDTO.phpapp/DTO/
RequestPostRequest.phpapp/Http/Requests/
ResourcePostResource.phpapp/Http/Resources/
PolicyPostPolicy.phpapp/Policies/
FactoryPostFactory.phpdatabase/factories/
SeederPostSeeder.phpdatabase/seeders/
Migration*_create_posts_table.phpdatabase/migrations/
Test featurePostControllerTest.phptests/Feature/
Test unitairePostServiceTest.phptests/Unit/
Routeentrée apiResourceroutes/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 :

php
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 :

php
/**
 * @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 Model

L'autocomplétion fonctionne immédiatement dans VS Code et PhpStorm, sans ide-helper pour le code généré.

Étapes suivantes