14 points par samchon 2023-07-30 | 6 commentaires | Partager sur WhatsApp

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

 
roxie 2023-08-05

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.

 
kuber 2023-07-30

Dans l’écosystème TS, il est courant de définir manuellement les types et fonctions associés en se basant sur la documentation ?

 
hyeonss0417 2023-07-31

À 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

 
samchon 2023-07-31

En TS, le code généré par openapi-generator n'est pas vraiment exploitable.

 
kunggom 2023-07-30

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 ?

 
samchon 2023-07-30

Il suffit de pouvoir générer le swagger.json correspondant à 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.