La parole est aux speakers : Nicolas Grekas

Publié le

Jusqu’à l’AFUP Day 2025, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Consommer les API HTTP en PHP comme il faut !

La communication entre serveurs via des requêtes HTTP ne devrait pas présenter de difficultés, pourtant elle présente souvent des défis inattendus.

De la compréhension du protocole HTTP à l’adaptation des requêtes à votre domaine, en passant par la garantie d’une bonne expérience développeur (DX) lors de la création d’un SDK, le processus est loin d'être évident. Dans cette conférence, nous explorerons ces défis et démontrerons comment les surmonter grâce aux bonnes pratiques de la programmation orientée objet SOLID.

Découvrez comment utiliser des outils comme php-http/discovery et symfony/http-client, et comment les défis posés par une PSR-7 envahissante. Rejoignez-nous pour des conseils pratiques sur la consommation efficace des API HTTP en PHP.

Maurice
16/05/2025
14:00-14:40

Les échanges HTTP sont devenus relativement classiques dans les applications. Comprendre et intégrer les APIs rapidement devient aussi un argument de vente pour certains services en ligne. Selon-toi quels sont les points noirs à éviter pour l’expérience développeur lors de l’implémentation d’une API ?

Il y a deux aspects qui me semblent particulièrement importants pour les utilisateurs d’un SDK : la minimisation des dépendances qu’il va apporter, et ses possibilités d’instrumentation. Trop de SDKs ajoutent des dépendances inutiles à leur composer.json, contribuant à rendre les mises à jour de nos apps complexes. Trop de SDKs également se lient en dur à une instance de client HTTP, empêchant ou complexifiant la possibilité de suivre l’activité réseau dans les outils de debug ou d’observabilité. Dans cette conférence, je présente une solution aux deux problèmes.

Lorsque l’on parle de l’API d’un service, on pense assez rapidement à sa documentation. On trouve aujourd’hui des documentations métier, mais aussi techniques, plus ou moins évoluées, plus ou moins dynamiques voire même directement un SDK à télécharger. Dans l’ordre, quelles sont, selon toi, les choses à mettre en place en priorité et au contraire les fausses bonnes idées ?

La priorité, c’est une doc technique claire, avec des exemples simples et des cas d’usage concrets. Juste ça, bien fait, c’est déjà énorme. Un SDK, il faut vraiment se poser la question de la valeur ajoutée, en comparaison d’une bonne doc technique type OpenAPI. Mal maintenu, il peut finir par créer plus de problèmes qu’il n’en résout, y compris en termes d’image si la qualité n’est pas au RDV. La doc métier, c’est un plus, mais elle arrive après.

Le client HTTP de Symfony est très utilisé, pratique et configurable, celui-ci répond à de nombreux besoins. Quelles sont, selon toi, les choses manquantes qui pourraient y être ajoutées pour faciliter encore un peu plus la vie des devs ?

La fonctionnalité qui semble manquer le plus est un cache HTTP qui se comporte de façon adéquate côté client. Actuellement, on utilise le système HttpCache, mais celui-ci est conçu pour les besoins côté serveur. Pas toujours adapté. Bonne nouvelle, il y a une PR en relecture qui devrait corriger ça en 7.3. Je sais que certains aimeraient une gestion plus facile du timeout de connexion, qui pour le moment nécessite un peu de code. De mon côté, j’ai un projet d’attribut #[AutowireHttpClient] pour faciliter l’injection de clients pré-configurés sans passer par de la configuration sémantique. À part ça, vous savez comment fonctionne un projet open-source : sur proposition de ses utilisateurs. À vous de me dire !

Une conférence présentée par

Nicolas GREKAS
Nicolas GREKAS
Nicolas contribue à Symfony, avec deux casquettes: côté open-source, il propose de nouvelles fonctionnalités, des corrections de bugs, et accompagne les autres contributeurs et contributrices presque quotidiennement depuis près de 10 ans. Il s'efforce de rendre Symfony toujours plus performant, souple et extensible. Côté pro, il participe à l'ambition de créer une entreprise durable en contact immédiat avec l'écosystème Symfony. Pas facile quand le produit est gratuit !

Autres intervenants