Skip to content

Comparaison avec API Platform ​

API Platform est le framework d'API de référence en PHP, et depuis sa version 4 il tourne aussi sur Laravel. Il répond au même besoin que ce package, une API REST complète sur vos modèles, d'une façon très différente. Cette page met les deux côte à côte pour vous aider à choisir celui qui convient à votre projet.

Deux approches ​

Avec API Platform, vous ajoutez l'attribut #[ApiResource] à un modèle Eloquent et l'API existe. API Platform enregistre les routes et répond à chaque requête par son propre contrôleur, ses state providers et ses processors, à l'exécution. Votre dépôt contient les modèles et leurs attributs, et api-platform/laravel reste une dépendance de production.

Le générateur, lui, écrit le code. Chaque entité reçoit un contrôleur, un service, un DTO, deux form requests, une resource, une policy, une migration, une factory, un seeder et deux classes de tests, en Laravel standard. Le package est une dépendance de dev, et rien de ce qu'il génère n'y fait référence, si bien que l'API continue de fonctionner une fois le package retiré.

Côte à côte ​

API Platform pour LaravelLaravel API Generator
Comment l'API existe#[ApiResource] sur un modèle, servie à l'exécution par API PlatformContrôleurs, services et le reste écrits dans votre projet
Dépendanceapi-platform/laravel en production--dev, retirable une fois le code généré
FormatsJSON-LD (Hydra), JSON:API, HAL, GraphQLJSON via les API resources de Laravel, resources JSON:API en option
Doc de l'APIOpenAPI généré automatiquement, avec Swagger UI et GraphiQLOpenAPI via Scramble, export de collection Postman
Pagination et filtresIntégrés, filtres déclarés par attributGénérés dans chaque service : filter[colonne], sort, per_page
Validation et autorisationForm requests de Laravel, gates et policiesForm requests de création et de mise à jour et une policy générées pour chaque entité
TestsAssertions prêtes pour Pest et PHPUnit, tests écrits par vousTests feature et unitaires écrits pour chaque entité, verts dès la génération
Changer le comportementConfiguration, state providers et processorsModifier le code généré, ou les stubs pour les prochaines générations
Ajouter une colonneMigrer, et l'API lit la nouvelle colonne dans la base--add-fields écrit la migration et modifie le modèle, les requests, la factory et la resource
SourcesModèles Eloquent. Son schema generator peut aussi écrire des entités Doctrine, pensées pour Symfony, depuis un document OpenAPI ou Schema.orgFlags CLI, schéma YAML ou JSON, diagramme Mermaid, spec OpenAPI, base existante, description confiée à un agent IA
Agents IAUn serveur MCP expérimental permet aux agents d'appeler votre API en fonctionnement, et un plugin Claude Code avec un AGENTS.md guide l'agent qui écrit le codeUn serveur MCP par lequel les agents de code planifient et génèrent l'API, chaque fichier montré avant d'être écrit
En plusTemps réel avec Mercure, cache HTTP avec invalidation, générateurs d'admin et de clientsUne extension VS Code

Lequel choisir ​

API Platform est à son meilleur quand l'API est le produit : plusieurs formats ou GraphQL depuis le même modèle, des données liées, du temps réel, très peu de code dans le dépôt, et une équipe prête à apprendre ses concepts.

Le générateur convient aux équipes qui veulent lire chaque ligne de leur API dans le Laravel qu'elles connaissent déjà, avec une couche service, des DTO et des tests dès le premier jour, sans framework dont dépendre en production. Il convient aussi aux projets qui partent d'une base existante, d'un fichier de schéma ou d'une spec, et aux équipes dont les agents de code doivent produire la même structure à chaque fois.