15 Déc 2022

400 API et 2000 types : genèse du nouveau client Java pour Elasticsearch

ENSEIRB, 1 Avenue du Docteur Albert Schweitzer 33400 Talence
19h00
ENSEIRB, 1 Avenue du Docteur Albert Schweitzer 33400 Talence
19h00
Bordeaux
En savoir plus

Détails :

Conférence gratuite, organisé par Bordeaux JUG, s’inscrire s’il vous plait afin que nous prévoyions le nécessaire pour l’apéritif de fin.
Détails :
Un nouveau client Java pour Elasticsearch est sorti fin 2021. Plus léger, plus rapide, plus ergonomique et… généré à 99% !

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.