La parole est aux speakers : Antoine Bluchet

Publié le

La conférence

Comment nous avons rendu API Platform compatible avec Laravel

API Platform, cadriciel écrit en PHP basé sur Symfony est un outil de développement d'APIs web parmi les plus puissants. En effet, en embarquant les standards les plus populaires du marché, il permet aux devs de s'abstraire de l'implémentation protocoles académiques complexes (JSON-LD, Hypermedia, JSON Schema etc.) et de profiter de leurs fonctionnalités. La communauté Laravel, proche de leurs outils et de l'approche plus abstraite de Laravel face à Symfony, ne bénéficiait jusqu'alors pas d'outils aussi performants. De ce fait, nous avons souhaité rendre API Platform compatible avec Laravel et nous vous embarquons avec nous dans l'aventure pour partager l'intégration de ces deux outils. Au menu de cette présentation, quelles ont été les décisions techniques qui nous ont permis de le faire, quelles sont les difficultés que nous avons rencontrées et comment se lancer avec Laravel et API Platform.

Salle Hopper ABCDEF
13/10/2023
15:55-16:35

As-tu retenu des enseignements personnels en rendant API Platform compatible avec Laravel ? Si oui, lesquels ?

Je crois que la dernière fois que j’ai utilisé Laravel c’était à mes débuts en PHP il y a plus de 10 ans, j’avais ensuite choisi CakePHP et n’y était plus retourné. C’était intéressant de s’y plonger à nouveau, et comme à mon habitude j’ai étudié le code de Laravel pour comprendre son fonctionnement et m’y greffer au mieux.
Au final, nous avions anticipé l’intégration d’API Platform et il était plus difficile de se détacher de Symfony que de s’intégrer à Laravel. Tout compte fait, l’enseignement principal est que nos implémentations ne sont jamais figées dans le marbre et qu’elles évoluent continuellement. Aussi, lorsqu’on travaille sur du logiciel libre, il faut prendre le temps qu’il faut pour concevoir et penser nos interfaces qui sont ensuite utilisées par les devs, surtout que nous garantissons (sous license MIT) une rétro-compatibilité. Cette compatibilité est la chose la plus dure et la plus chronophage lors de nos développements. En tant que consommateurs de nos bibliothèques, il faut avoir cela en tête car il est difficile pour nous de justifier le temps nécessaire pour ce genre de développements.

Quel a été le besoin qui a poussé à réaliser cette compatibilité ?

API Platform devient de plus en plus extensible et propose des implémentations de standards (JSON-LD, Hydra, JSON:API, OpenApi etc.) qu’aucun autre cadriciel ne propose aujourd’hui. Nous savons que Laravel est très utilisé dans la communauté PHP mais lorsqu’il s’agit de créer une API les outils sont peu avancés ou de mauvaise qualité. Nous voulons apporter à la communauté Laravel nos outils, qui ont acquis une certaine stabilité et renommée.

En complément de la compatibilité technique, quel a été l’effort à fournir pour écrire de la documentation supplémentaire et spécifique à Laravel ?

L’impact sur la documentation d’API Platform en tant que telle est assez minime. C’est l’impact sur l’expérience de développement qui demande plus d’effort. Les pratiques ne sont pas les mêmes et c’est là ou nous voulons apporter quelque chose de plus qu’un simple portage de la librairie de Symfony à Laravel. De ce fait l’usage va être travaillé pour coller aussi bien aux différents styles de code, avec par exemple un support d’Eloquent, d’Octane ou d’autres fonctionnalités spécifiques à Laravel. Pour en savoir plus je vous invite à venir voir ma conférence !

Une conférence présentée par

Antoine BLUCHET
Antoine BLUCHET
Développeur Full-Stack, Antoine contribue aux logiciels libres depuis plus de 10 ans. Auteur et mainteneur de modules JavaScript, il contribue également à Symfony et API Platform. Quand il n'est pas en train de réparer ou de conduire sa moto, ou de jongler sur un monocycle, il est probablement en train de coder, d'écrire ou de préparer une nouvelle conférence impliquant de la programmation innovative !

Autres interviews

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :