Retour sur l'API Platform Con 2023 - jour 2
Publié le 29 septembre 2023
Après vous avoir présenté les conférences données le 21 septembre lors de l'API Platform Con 2023, découvrons les sujets qui étaient programmés le vendredi 22.
Create the DTO System of your Dreams: stateOptions + entityClass - Ryan Weaver #
Par défaut, API Platform propose une intégration avec Doctrine, ce qui implique de coupler l’entité à la ressource. Dans l’état de l’art d’une API, et éventuellement pour obtenir une représentation de notre ressource différente de notre entité, Ryan Weaver nous a montré une autre approche consistant à séparer les ressources des entités (une sorte de DTO). Mais cette séparation implique de devoir recoder tous les services proposés par API Platform : filtres, pagination, extensions…
C’est là qu’entre en jeu l’option stateOptions
, offrant la possibilité de séparer la ressource de l’entité, tout en réutilisant l’intégration de Doctrine avec API Platform !

Remplacer une base de données par une API sans toucher l’existant, Mission Impossible ? - Smaïne Milianni #
Smaïne Milianni nous a fait une conférence très drôle sur un retour d’expérience d’une migration de projet e-commerce legacy vers API Platform. Comment l’équipe du projet a dû composer avec plusieurs bases de données le temps que tout soit migré et comment, via une série de services, elle allait récupérer les données aux bons endroits durant toute la période de migration.

The bright and exciting future of the decentralized web - Pauline Vos #
Pauline Vos a commencé sa conférence en nous présentant ce qu’est la décentralisation, et plus spécifiquement, dans le web. L’avantage d’un web décentralisé est que celui-ci n’est plus contrôlé par les mêmes très gros acteurs (GAFAM principalement), permettant à l’utilisateur de reprendre le contrôle sur ses données et limiter la surveillance de masse ou la censure.
Elle a ensuite parlé du projet Solid, permettant de posséder un “pod” auto-hébergé avec toutes nos données personnelles à l’intérieur et d’avoir le contrôle sur qui consulte ses données, lesquels je souhaite partager, etc. Les applications web interagissent donc avec notre "pod" mais ne stockent pas nos données personnelles.

Pauline a ensuite continué sa conférence en parlant du Fediverse, mais aussi du protocole IPFS.
PHP’s Kitchen Nightmares - Stefan Koopmanschap #
Stefan Koopmanschap est fan de l'émission "Kitchen Nightmares" et s'en est servi pour illustrer les problèmes communs que l'on peut rencontrer dans notre "cuisine" de développeurs PHP.
Au travers d'une conférence amusante, il nous a montré de courts extraits de cette émission et fait le lien entre les recommandations du Chef Ramsay et les bonnes pratiques de développement. Parmi les conseils qu'ils nous donne, il nous explique notamment que le client a toujours raison ("sauf quand il a tort"). Il veut surtout dire par là qu'il ne faut pas essayer d'interpréter ce que veut le client mais qu'il est important de bien communiquer avec lui pour comprendre ses besoins, et de ne pas faire d'over-engineering juste parce que c'est amusant.
Bref, pleins de petits conseils, qui relèvent, pour la plupart, plus de compétences humaines que techniques. Mais qui sont de bonnes piqûres de rappel pour nous, devs têtus, qui veulent faire les choses à notre sauce, et souvent au détriment de notre équipe ou de notre projet !
Rejoignez le Fediverse avec API Platform ! - Jérôme Tanghe #
De son côté, Jérôme Tanghe a présenté le protocole ActivityPub, qui permet aux réseaux sociaux Mastodon, Pixelfed, PeerTube et bien d’autres encore, de communiquer ensemble de façon transparente. ActivityPub est un protocole proposé par le W3C basé sur l’architecture REST, ce qui fait d’API Platform un framework de choix pour son implémentation.
Centré sur l’utilisateur, nommé acteur dans le protocole, ce dernier lui attribue deux boîtes aux lettres : l’inbox lui permet de recevoir les messages provenant d’utilisateurs présents sur d’autres serveurs, tandis qu’il dépose ses propres messages dans l’outbox, accessible publiquement et donc lisible par tout le monde. Un message peut être un simple contenu textuel, une vidéo, une image, un contenu riche… mais aussi une information indiquant qu’un utilisateur en suit un autre ou a aimé ou partagé un contenu.
Chaque interaction entre les serveurs doit être sécurisée afin de s’assurer qu’un utilisateur est bien celui qu’il prétend être. Si la spécification d’ActivityPub reste vague sur la méthode à employer, un consensus s’est installé depuis quelques années, basé sur une signature cryptographique des en-têtes à l’aide d’une paire de clés RSA propre à l’utilisateur. Jérôme précise que cette sécurisation est la partie la plus délicate du travail d’implémentation, et conseille de rester patient : une fois terminée, l’implémentation du reste du protocole est très facile, d’autant que la spécification est très accessible.
Lightning talks #
Cette session de trente minutes n'était pas retransmise en direct mais nous avons trois participants de l'API Platform Con 2023 qui sont montés sur scène pour nous présenter en sept minutes chrono un sujet, peu importe le thème. Florent Huck (Platform.sh) nous a présenté comment déployer API Platform dans le PASS, Valmont Pehaut Pietri (Alximy) nous a initié à l'univers de la bière et Kevin Verschaeve (Exotec) nous a montré ses commandes zsh préférées.



Une histoire d'épouvante qui finit bien : récit d'une migration d'une API custom vers API Platform 2.x puis 3 - Bastien Jaillot #
La migration d’un projet API Platform 2.x vers 3.x n’est pas une mince affaire… surtout si l’on vient de loin ! Partant d’un vieux projet, Bastien Jaillot est revenu toutes les difficultés que son équipe et lui ont rencontrées lors de leur montée de version vers API Platform 2.1, 2.x, et le passage difficile vers 3.0.
Utilisation massive du format YAML, non adaptation du projet à la montée d’une version mineure, script automatique de montée de version ne prenant pas en charge le format YAML, et autres couacs rencontrés, Bastien nous a prodigué ses conseils pour ne pas rencontrer les mêmes difficultés.
Developing APIs with Symfony in 2023 - Nicolas Grekas #
Nicolas Grekas a montré un aperçu de toutes les nouvelles fonctionnalités prévues dans Symfony 7 qui sort en novembre. Parmi ces fonctionnalités, on peut notamment découvrir de nombreux attributs très pratiques comme #[AsController]
, #[AsAlias]
, #[MapRequestPayload]
, etc.
