Les générateurs de code
Swagger et OpenAPI ont tous les deux une suite d’outils qui permettent, entre autres, de générer du code depuis une description d’API et réciproquement. Nous avons déjà vu le plugin Springfox pour générer la description de l’API depuis le code, à la compilation et au runtime. Ils ont aussi des outils pour générer du code à partir de la descripion de l’API.
La description de l’API se fait à travers un fichier JSON ou un fichier YAML. À partir de ce fichier, il est possible de générer du code dans différents langages et pour différents serveurs. Nous nous concentrons sur la génération de code client et serveur avec les technologies Java et Spring Boot. Le générateur est polymorphe. Il existe sous la forme d’une CLI (Command Line Interface) dans un JAR, d’un paquet npm et d’un plugin maven.
La version maven est la plus simple pour pouvoir apporter des modifications. Nous avons en effet le même "problème" qu’avec les générateurs de code comme jHipster pour lesquels le modèle utilisé pour la génération ne correspond pas exactement aux fichiers que l’on souhaiterait. Les générateurs Swagger et OpenAPI n’ont pas les mêmes jeux de templates et ont chacun leurs subtilités.