Outil de génération d’un SDK TypeScript et d’un simulateur de mocks à partir d’un fichier Swagger.json
Ici, le SDK (Software Development Kit) englobe les fonctionnalités suivantes :
- collection de fonctions
fetch - structures DTO
- simulateur de mocks
En construisant et en utilisant le SDK, il devient bien plus simple et sûr pour les développeurs front-end (client) que de lire la documentation Swagger puis de recopier les fonctions fetch et les types DTO ; de plus, le mocking du serveur back-end avec msw est également automatisé, ce qui améliore la productivité.
6 commentaires
Un bon article, merci pour cette approche intéressante. C’est peut-être simplement une préférence personnelle, mais j’aurais aimé voir dans le corps du texte des exemples du genre : « si on ajoute ce type de code, alors ce qui se passait auparavant comme ceci devient comme cela ». Dans sa forme actuelle, le contenu principal n’accroche presque pas le regard.
Dans l’écosystème TS, il est courant de définir manuellement les types et fonctions associés en se basant sur la documentation ?
À ce sujet, il existe une bibliothèque appelée Tspec qui génère automatiquement la spécification OpenAPI à partir des types TypeScript hehe
https://github.com/ts-spec/tspec
En TS, le code généré par openapi-generator n'est pas vraiment exploitable.
On dirait que c’est plutôt un mode d’emploi de l’outil directement créé par samchon, l’auteur de ce post, donc je me demande s’il ne vaudrait pas mieux le mettre du côté de Show GN.
Quoi qu’il en soit, je trouve que c’est une bonne idée de permettre l’autocomplétion dans un client TypeScript à partir d’un fichier
swagger.json. Est-ce que cela peut aussi être utilisé avec d’autres stacks backend que NestJS ?Il suffit de pouvoir générer le
swagger.jsoncorrespondant à la spécification OpenAPI v3.0, quel que soit le langage ou le framework.J’avais déjà publié un billet de blog avec le tag show GN auparavant, mais à l’époque l’administrateur m’avait expliqué que show GN était réservé aux liens GitHub ou aux liens de projet, et l’avait déplacé dans la catégorie des articles généraux.