API Platform
API Platform, des API conformes aux standards sans réinventer la roue
API Platform est un framework open source pour construire des API web, créé et maintenu par nos confrères et amis de Les Tilleuls. Construit sur Symfony, il part d’une simple classe PHP décrite par des attributs pour exposer une API REST et GraphQL complète : opérations, pagination, filtres, validation, sécurité, documentation OpenAPI et formats hypermedia comme JSON-LD et Hydra.
Son grand mérite est de reposer sur les standards du web plutôt que sur des conventions maison. Une API construite avec API Platform est immédiatement compréhensible par les outils du marché, des générateurs de clients aux plateformes de documentation, et par les développeurs qui la consomment.
Ce qui fait la différence
📐 Les standards
OpenAPI, JSON-LD, Hydra, JSON:API ou HAL au choix, négociation de contenu, codes HTTP corrects : l’API est juste par construction.
🔐 La sécurité
Règles d’accès déclaratives par opération, intégration du composant Security de Symfony, validation des données entrantes, groupes de sérialisation pour ne jamais exposer un champ par accident.
⚙️ L’extensibilité
State providers et state processors pour brancher n’importe quelle source de données, filtres personnalisés, DTO en entrée comme en sortie : le framework n’impose pas votre modèle.
🚀 La performance
Pagination, cache HTTP avec invalidation automatique, compatible avec Varnish, et temps réel avec Mercure. Les bonnes pratiques sont là dès le départ.
Une expertise forgée sur des projets exigeants
redirection.io, le SaaS de gestion de la qualité front et du SEO conçu par JoliCode, s’appuie massivement sur API Platform pour exposer et traiter des données en très gros volumes. C’est notre laboratoire quotidien.
Nous avons aussi accompagné Faume dans sa transition d’un modèle d’agence vers un modèle SaaS, en repensant l’architecture de son API avec API Platform 3 : audit de l’ensemble du code, optimisation de la réplication des données entre centres de données, revues de code et accompagnement de l’équipe.
Migrer sans frayeur
Passer d’une API sur mesure à API Platform 2, puis à la version 3, est un parcours semé d’embûches : restructuration du code, remplacement des DataProviders et DataPersisters par les state providers et processors, maîtrise des performances. Bastien Jaillot l’a raconté sans fard à l’API Platform Conference 2023 dans Une histoire d’épouvante qui finit bien.
Cette expérience nous permet aujourd’hui de planifier et de mener ces migrations de façon progressive, sans interrompre le service rendu à vos clients.
Des API rapides, et des clients fiables
La sérialisation est souvent le poste de coût principal d’une API PHP. Pour les API à fort trafic, nous remplaçons une partie du Serializer de Symfony par AutoMapper, notre bibliothèque open source de mapping haute performance, disponible en version 10. Joël Wurtz a présenté cette approche au Forum PHP 2024 dans Optimiser les performances de votre API avec AutoMapper : charge serveur réduite et temps de réponse plus courts, y compris sur des appels simples.
De l’autre côté du fil, nous consommons les API avec Jane, qui génère des modèles et des clients PHP à partir de la spécification OpenAPI produite par API Platform. Le contrat d’API devient la source de vérité, partagée entre les équipes et les services.
Faire appel à notre expertise API Platform
- Concevoir une nouvelle API avec API Platform, de la modélisation des ressources à la documentation et à la mise en production.
- Migrer une API existante vers API Platform ou vers sa dernière version majeure, par étapes et sans interruption.
- Optimiser une API en production : performance, cache, sérialisation, architecture.
💡 Un projet d’API ?Parlons-en
Nos derniers articles sur API Platform
Nous publions régulièrement notre état de l’art ou nos recommandations concernant les outils que nous mettons en œuvre.
Microservices et contrats d’API : Jane comme source de vérité
Dans le développement d’une API, nous sommes tous confrontés au même défi : maintenir la cohérence entre la documentation et le code. Qui n’a jamais perdu des heures à débugger une erreur parce que le champ user_id…
par Baptiste Leduc
Fine tune an OpenAPI specification for mocking
More and more often, in the projects I work on, I need to mock APIs. When I’m lucky enough, the API provides an OpenAPI specification, but sometimes it can be heavy. I almost never need to locally mock the whole…
par Mathieu Santostefano
Appliqué chez nos clients
Notre mission a été particulièrement passionnante car Faume a pris la décision de migrer d’un modèle « agence » vers un modèle « SaaS ». Nous avons été sollicité pour challenger leur architecture…