Go to content

Genèse et utilisation du nouveau client Java pour Elasticsearch (Sylvain Wallez)

Pour rester informé sur l'actualité de Devoxx France, suivez nous sur twitter : https://twitter.com/DevoxxFR ou consultez notre site web https://www.devoxx.fr/ Titre original : 400 endpoints d'API et 2000 types : genèse et utilisation du nouveau client Java pour Elasticsearch Description Un nouveau client Java pour Elasticsearch est sorti en octobre 2021. Plus léger, plus rapide, plus ergonomique et… généré à 99% ! Une session en deux parties, avec un REx sur le développement de cette nouvelle librairie, suivi d’une exploration de son usage en live coding. L'API d'Elasticsearch a grandi de façon organique depuis 10 ans et compte près de 400 points d'API et 2000 structures de données. Jusqu'à 2021 il n'y avait pas de spécification formelle complète de cette API. Gênant pour générer du code… On a rapidement vu que OpenAPI était difficilement applicable, et pris une approche originale, en modélisant l’API avec des types TypeScript “compilés” dans un modèle servant de base à la génération de code. Comment ensuite, à l’usage, s’y retrouver dans cette API très riche ? On verra avec quelques exemples que l’utilisation de fluent functional builders et de tagged unions (un peu de formalisme pour des choses simples) permet une écriture proche d’un DSL où on se laisse guider par l’autocomplétion de l’IDE sans jamais avoir à taper un nom de classe, dans des structures arborescentes et polymorphiques proposant parfois plus de 50 variantes.

April 20, 2022