Changelog
Les versions récentes du package et de l'extension VS Code. Les historiques complets sont sur GitHub : CHANGELOG du package · CHANGELOG de l'extension.
Package - nameless/laravel-api-generator
4.1.0 - 27 octobre 2026
- Régénérez une entité sans retaper ses champs : le manifeste garde la définition à partir de laquelle chaque entité a été générée, et
make:fullapi Post --only=Model,Requestretrouve ses relations, ses valeurs d'enum, ses clés étrangères et ses modificateurs de colonnes. Voir Régénérer des fichiers précis. - Les champs ajoutés avec
--add-fieldsrejoignent cette définition et gardent leur propre migration.
4.0.0 - 27 septembre 2026
- Laravel 12 ou 13 est requis. Les projets Laravel 10 et 11 gardent la 3.15, et Passer à la 4.0 liste tous les changements.
- Les contrôleurs reçoivent le modèle par la liaison de route et interrogent la policy de l'entité avant chaque action. Les policies générées laissent passer tout le monde, invités compris, tant que vous ne les restreignez pas.
StorePostRequestetUpdatePostRequestremplacentPostRequest, et un PATCH ne modifie que les champs qu'il envoie.- Les tests générés couvrent les mises à jour partielles, ainsi que la restauration et la suppression définitive des entités avec soft deletes.
- Chaque index est paginé, filtrable et triable (
filter[status]=draft&sort=-created_at&per_page=20), avec ou sans Spatie QueryBuilder. Voir Pagination, filtres et tri. - Sur Laravel 13, les modèles générés déclarent leur clé et leurs colonnes fillable avec
#[Table]et#[Fillable]. Les casts passent dans une méthodecasts(), et les enums portent le nom de l'entité et du champ (PostStatus). - Le code généré passe
pint --test, et les champs JSON acceptent un objet ou une liste. - Corrigé : une migration de
--add-fieldsne passe plus avant la table qu'elle modifie quand les deux ont été générées dans la même seconde. - Retirés : le fichier de config jamais chargé et les deux méthodes du service dépréciées en 3.8.
3.15.1 - 27 septembre 2026
- Corrigé : un
belongsTovers un modèle à clé primaire personnalisée en texte, commecountry_code, ne transforme plus la clé en0dans le DTO, ce qui faisait échouer la création et la mise à jour.
3.15.0 - 27 septembre 2026
- Corrigé : une clé primaire personnalisée est validée comme unique, donc poster une clé qui existe déjà renvoie 422 au lieu de 500.
- Corrigé : un
hasOnepose sa clé étrangère sur la table liée, là où Eloquent la cherche. Un avertissementhas_one_foreign_keynomme la colonne à ajouter quand le modèle lié est généré à part. - Corrigé : les champs
date,timeetdatetimereçoivent des colonnesDATE,TIMEetDATETIMEau lieu deTIMESTAMP, et les champstimesont validés comme une heure. Voir Types de champs. - Corrigé :
--query-buildertrie sur la vraie clé primaire, donc les entités à clé personnalisée ne plantent plus sur leur index. class_data.jsonreçoit le côté manquant de ses relations, comme les fichiers de schéma et les diagrammes Mermaid.
3.14.0 - 27 septembre 2026
- Le serveur MCP propose un prompt
design-api: décrivez l'API avec vos mots, l'agent rédige le schéma, vous montre le plan, puis génère une fois votre accord donné. Voir Serveur MCP.
3.13.0 - 27 septembre 2026
- Génération depuis une spec OpenAPI 3.0, 3.1 ou Swagger 2.0 avec
--openapi, en ligne de commande ou par le serveur MCP. Voir Specs OpenAPI. - Corrigé : un
hasManysuit lebelongsTod'en face quand celui-ci porte le nom de son rôle, commeauthor_idpourauthor: belongsTo User.
3.12.0 - 27 septembre 2026
- Un serveur MCP permet à Claude Code, Copilot, Cursor et aux autres agents de lister, prévisualiser et générer des API, et d'ajouter des champs, sans jamais écraser vos retouches. Voir Serveur MCP.
- Un champ de schéma au type inconnu déclenche maintenant un avertissement
unknown_field_type. --add-fieldsrefuse un nom d'entité qui sort deapp/Models.
3.11.0 - 27 septembre 2026
- Régénérer garde les fichiers que vous avez modifiés à la main, et les nomme.
--forceles écrase quand même. Voir Faire évoluer les entités. - Le générateur note ce qu'il écrit dans
.api-generator/manifest.json: committez ce fichier. delete:fullapisupprime aussi les migrations ajoutées avec--add-fields, nomme les fichiers que vous avez modifiés, et gagne--dry-run.
3.10.0 - 27 septembre 2026
- Prise en charge de Laravel Boost : des consignes et un skill
laravel-api-generatorapprennent à votre agent de code à générer les API au lieu d'écrire les fichiers à la main. Voir Outils et agents. - Un JSON Schema des fichiers de schéma apporte l'autocomplétion et la détection des fautes de frappe dans l'éditeur. Voir Autocomplétion dans l'éditeur.
php artisan aboutaffiche la version installée, le protocole et le fichier de schéma détecté.- La documentation publie
llms.txtetllms-full.txtpour les agents IA.
3.9.0 - 27 septembre 2026
--dry-runmontre chaque fichier qu'une commande créerait ou modifierait, sans rien écrire, pour toutes les sources y compris--add-fields.--jsonaffiche un seul document lisible par les machines, pour les scripts, les éditeurs et les agents IA. Voir Outils et agents.--schema=-lit un schéma sur l'entrée standard.api-generator:serve --stdiogarde un processus d'aperçu ouvert. L'extension VS Code s'en sert : son aperçu en direct montre exactement le code que le package écrit.- Une génération qui échoue ne laisse plus la moitié des fichiers derrière elle.
- Régénérer la collection Postman conserve son identifiant.
- Corrigé : relancer
--authne retire plus les routes de ressources deroutes/api.php.
3.8.0 - 27 septembre 2026
- Corrigé : un PUT qui conserve une valeur unique ne renvoie plus 422 sur les entités à nom composé (
BlogPost) ni avec une clé primaire personnalisée. - Corrigé : le seeder est bien enregistré dans
DatabaseSeeder.php, même quand le fichier utilise des fins de ligne Windows (CRLF). --authlimite l'inscription et la connexion à 6 requêtes par minute.json_api: trueest désormais pris en compte dans les fichiers schema.api-generator:installproposeinstall:apiet Scramble, et n'écrase plus votre configuration.delete:fullapidemande confirmation avant de supprimer (--forcesaute la question).- Suppression de la commande non documentée
make:loic. Le téléchargement Composer passe d'environ 7 Mo à moins de 0,5 Mo.
3.7.1 - 17 juillet 2026
- Correction de l'email de contact du mainteneur (
composer.json+ section sécurité du README).
3.7.0 - 17 juillet 2026
--json-api: génère des resources conformes à JSON:API (JsonApiResource, Laravel 12.45+) : une liste$attributesplus une liste$relationshipsissue des relations de l'entité, l'iddevenant l'identifiant JSON:API. Les contrôleurs sont inchangés ; le test généré vérifiedata.id. Repli sur une resource standard sur Laravel < 12.45.
3.6.1 - 17 juillet 2026
- Support de Laravel 13 : la contrainte s'arrêtait à
^12, donccomposer requireétait refusé sur toute application en Laravel 13 (sorti le 17 mars 2026). Elle autorise désormais^13.0. - Corrigé : 55 des 68 tests du package n'étaient silencieusement plus collectés sous PHPUnit 12, qui ne lit plus les annotations
/** @test */. Les tests utilisent maintenant l'attribut#[Test]. Les stubs générés n'ont jamais été concernés. - La CI couvre désormais PHP 8.3/8.4 × Laravel 13.
3.6.0 - 16 juillet 2026
- PHPDoc des modèles : chaque modèle généré porte un docblock
@propertycomplet (vrais types PHP, nullabilité, relations, timestamps). Autocomplétion IDE immédiate, sans ide-helper. - Champs enum natifs :
status:enum(draft,published)génère un backed enumApp\Enums\Status, le cast du modèle, la validationRule::enum(), une valeur de factory et une vraie colonne$table->enum(). --pest: génère des tests Pest (it(…),expect(…)) au lieu de classes PHPUnit.- Relations inverses automatiques sur les sources schéma/Mermaid : déclarer un côté suffit ; l'inverse (et sa colonne FK) est synthétisé.
- Relations polymorphiques :
morphTo,morphOne,morphManydans les fichiers de schéma ;--from-databasedétecte les paires*_type/*_id. - Évolution d'entités (
--add-fields) : ajoute des champs à une entité générée sans toucher aux modifications manuelles : migration incrémentale + patchs en place. - Clés primaires personnalisées :
code:string:primaryremplaceidpartout : modèle, migration, relations entrantes, validation, factories. api-generator:clean-routes: supprime les lignes de route référençant des contrôleurs supprimés (le correctif de la ReflectionException deroute:list). Supporte--dry-run.- Corrigé : imports de relation auto-référentielle ; import
Collectionmanquant dans le PHPDoc.
3.5.1 - 16 juillet 2026
- Corrigé : les colonnes uniques généraient une règle
uniquenue et cassée (500 sur chaque store/update) ; désormaisRule::unique(…)->ignore(…). - Corrigé : les factories des colonnes uniques entraient en collision au seeding ; désormais
fake()->unique(). - Corrigé :
--onlyétait ignoré sur--from-database/--schema/--mermaid. - Corrigé : import de modèle dupliqué dans les tests des relations auto-référentielles.
3.5.0 - 15 juillet 2026
--from-database: introspecte la base du projet et génère une API complète par table : les FK deviennent des relations, les tables pivots desbelongsToMany,deleted_atactive les soft deletes.- Fichier de schéma déclaratif (
--schema=api-schema.yaml) : toute l'API dans un fichier YAML/JSON versionnable, auto-détecté à la racine. - Import Mermaid (
--mermaid=diagram.mmd) :erDiagrametclassDiagramdeviennent entités et relations. - Intégration Spatie QueryBuilder (
--query-builder) :?filter[field]=value&sort=-created_atsur chaque endpoint index. - Migrations de tables pivots pour
belongsToMany, et ordre de migrations sûr pour les FK (parents d'abord).
Versions antérieures
3.3.1 (correctifs strict types), 3.3.0 (routes et seeders auto-enregistrés, validation required par défaut), 3.2.0 (assistant interactif, auth Sanctum, tests générés, export Postman, soft deletes), 3.0.0 (réécriture clean architecture) : détails dans le changelog complet.
Extension VS Code
1.2.0 - 27 octobre 2026
- Corrigé : Regenerate File(s) ne fait plus perdre à une entité ses relations, ses enums et ses modificateurs de colonnes. La commande ouvre l'écran de relecture avec le diff de chaque fichier, et avec le package 4.1 l'entité revient depuis sa définition enregistrée.
- Cursor reçoit le serveur MCP et le skill de l'agent, sans
mcp.jsonà écrire, et un bloc Agents dans la sidebar installelaravel/mcpquand il manque et copie la commande Claude Code. Voir Serveur MCP. - Corrigé : l'écran de relecture tient les gros imports (il échouait au-delà d'environ 50 entités), le
php.batde Herd sous Windows fonctionne, et la liste des modèles Copilot suit Copilot pendant son chargement. - Les vues, les commandes et le raccourci ne s'affichent que dans les projets Laravel, et le walkthrough couvre l'extension actuelle, agents compris.
1.1.0 - 28 septembre 2026
- Une interface repensée. L'accueil de la sidebar montre le projet, ses versions de Laravel et de PHP et l'état du package, avec Nouvelle API, les sources et les outils du projet. Voir Diagramme & sidebar.
- Un seul écran de relecture pour toutes les sources : une description, la base, un fichier de schéma, un diagramme Mermaid et une spec OpenAPI ouvrent la simulation du package, entité par entité, avant Générer. Voir Sources & relecture.
- Décrire avec Copilot dans un panneau : choisissez le modèle, reliez ou non l'API aux entités existantes, ajustez les entités proposées, puis relisez le plan.
- Un écran d'API prête lance sur place les migrations, les tests, le seed, la doc et les stubs, et Project Actions l'ouvre à tout moment. Voir API prête & actions du projet.
- Le builder prévisualise les vrais fichiers à côté du formulaire, avec nullable, unique et défaut sur chaque champ. Le diagramme d'entités gagne une recherche, une minicarte, un export SVG ou Mermaid et un inspecteur. Les fichiers retouchés à la main sont signalés dans l'arbre des entités.
1.0.0 - 27 septembre 2026
- Va avec le package 4.0 : l'arbre des entités, Go to Related File et Regenerate File(s) lisent le manifest de génération, donc les requests Store et Update, les enums et les migrations de
--add-fieldsapparaissent. - Sur Laravel 10 et 11, l'extension installe la ligne 3.x du package, car la 4.x demande Laravel 12.
- Les erreurs de génération sont lues depuis les codes d'erreur du package, et la vérification des stubs explique pourquoi un stub de la 3.x ne convient plus.
0.17.0 - 27 septembre 2026
- Describe an API with Copilot : décrivez l'API avec vos mots, relisez l'
api-schema.yamlrédigé par Copilot, puis prévisualisez-le et générez-le. Voir Sources & relecture.
0.16.0 - 27 septembre 2026
- Génération depuis une spec OpenAPI 3.0, 3.1 ou Swagger 2.0, en JSON ou en YAML, depuis la palette de commandes, la barre latérale ou le bouton Import OpenAPI du formulaire. Un essai à blanc montre les entités, les fichiers et les schémas écartés avant toute écriture. Va avec le package 3.13.
0.15.0 - 27 septembre 2026
- Avec
laravel/mcpdans le projet, le mode agent de Copilot affiche le serveur MCP du package, lancé avec votre commande PHP, Sail et Docker compris. Voir Copilot et fichiers de schéma. Va avec le package 3.12.
0.14.0 - 27 septembre 2026
- Régénérer depuis le formulaire garde les fichiers modifiés à la main. Une fenêtre les nomme : les écraser, ou garder vos modifications et générer le reste. L'aperçu en direct les marque gardé. Va avec le package 3.11.
0.13.0 - 27 septembre 2026
- Dans les projets Laravel, GitHub Copilot reçoit le skill
laravel-api-generatordu package et génère les API avecmake:fullapi. - Les fichiers
api-schema.yaml,.ymlet.jsongagnent l'autocomplétion et la détection des fautes de frappe grâce au JSON Schema du package.
0.12.0 - 27 septembre 2026
- L'aperçu en direct est rendu par le package installé (3.9 ou plus récent) : chaque fichier que le générateur écrit, vos stubs publiés, des badges nouveau, modifié ou identique, et un diff pour les fichiers modifiés.
- La génération envoie le formulaire à
make:fullapi --schema=-. Plus declass_data.jsonà la racine du projet, et Soft Deletes, Auth et Postman ne sont plus ignorés quand le formulaire a des relations. laravelApiGenerator.phpCommandlance PHP via Sail ou Docker.
0.11.1 - 27 septembre 2026
- Le formulaire du builder propose désormais la mise à jour du paquet en un clic quand la version installée de
nameless/laravel-api-generatorest trop ancienne pour une option, comme le faisaient déjà les commandes d'import.
0.11.0 - 21 juillet 2026
- Accueil dans la barre latérale : la vue de la barre d'activité s'ouvre sur un panneau avec un bouton Nouvelle API, les trois sources d'import et des raccourcis vers le diagramme, les snippets et la documentation.
- Canevas infini : le diagramme des entités se déplace dans toutes les directions sur une grille pointillée, et Ctrl+molette zoome vers le curseur.
0.10.1 - 17 juillet 2026
- Bouton Sponsor sur la fiche Marketplace ; correction de l'email de contact du mainteneur.
0.10.0 - 17 juillet 2026
- Resources JSON:API : une option « JSON:API resources » dans le formulaire du builder et les générateurs de sources passe
--json-apiau package ; l'aperçu en direct rend la forme JSON:API. Se combine avec le package >= 3.7.
0.9.0 - 16 juillet 2026
- Autocomplétion des modèles sur les relations : les champs de modèle cible suggèrent les modèles de
app/Models. - Clé primaire personnalisée : une case
PKpar ligne de champ, reflétée dans l'aperçu en direct. - Nettoyage des routes orphelines : propose
api-generator:clean-routesquand List Routes tombe sur un contrôleur supprimé. - Zoom & pan du diagramme : Ctrl+molette vers le curseur, déplacement du fond, barre −/+/100 %/Fit.
- Opérations annulables : cliquer sur un bouton en cours tue le process artisan.
0.8.0 - 16 juillet 2026
- Commande Add Fields to Entity (avec package ≥ 3.6), migration lançable en un clic ensuite.
- Option tests Pest dans le formulaire et les trois commandes sources.
- Type de champ enum avec saisie des valeurs, rendu dans l'aperçu.
0.7.x - 15 et 16 juillet 2026
- Commandes Generate APIs from Database / Schema File / Mermaid Diagram (avec package ≥ 3.5).
- Option Spatie QueryBuilder + vérification de dépendance avec
composer requireen un clic. - Refonte du diagramme d'entités : courbes de Bézier, pastilles de cardinalité, surbrillance au survol, liens inverses fusionnés.
- Vue de bienvenue, rafraîchissement automatique, support monorepo, walkthrough, détection de package obsolète.
- Taille du VSIX réduite de 24,5 Mo à moins de 1 Mo.
Versions antérieures
0.2.0 (spinners, gestion intelligente du serveur, import JSON en masse, aperçu temps réel), 0.1.0 (première version) : détails dans le changelog complet.
