Générez des types TypeScript prêts depuis une spec OpenAPI
Vous avez une spec OpenAPI pour votre API et il vous faut des types TypeScript pour elle. Tout de suite. Sans écrire chaque route et chaque forme à la main, sans manquer un paramètre, sans oublier que tel champ paths est optionnel.
Collez le YAML ou JSON à gauche, obtenez un type `paths` propre (URL vers méthode vers formes de requête et réponse) plus des composants de schéma typés à droite. Le générateur suit les pointeurs \$ref, parcourt chaque operationId, et émet un seul fichier `.ts` auto-contenu que vous pouvez déposer dans votre projet.
Trois options rapides : schemas only (sauter le bloc `paths` quand vous ne voulez que les formes de données), JSDoc from descriptions (pour que votre IDE affiche la doc d'API au survol), et de vraies déclarations `enum` plutôt que des unions de string littéraux quand vous préférez ce style.
Mode d'emploi
- Collez votre spec OpenAPI à gauche. YAML ou JSON, version 3.0 ou 3.1. L'exemple par défaut est la spec minimale Petstore pour voir le générateur fonctionner tout de suite.
- Choisissez un format : laissez sur Auto et l'outil détecte YAML ou JSON depuis le premier caractère (`{` signifie JSON, autre chose est du YAML). Forcez explicitement si votre spec est inhabituelle.
- Activez « Schema components only » quand vous ne voulez que les formes de données (le bloc `components.schemas`) sans le mapping `paths`. Utile quand vous écrivez votre propre client HTTP à la main.
- Activez « Add JSDoc from descriptions » pour conserver vos champs `description` et `title` comme commentaires JSDoc au-dessus de chaque propriété générée. Votre IDE fera remonter la doc d'API au survol.
- Activez « Use enums instead of string unions » pour les champs avec `enum: [available, pending, sold]`. Activé, vous obtenez `enum Status { available, pending, sold }`. Désactivé, vous obtenez `"available" | "pending" | "sold"` (le défaut, plus sympa pour le tree-shaking).
- Cliquez sur `Copier` pour mettre le résultat dans le presse-papiers ou sur `Télécharger` pour l'enregistrer en fichier `openapi.ts`. Collez-le dans votre projet, importez les types `paths` et `components`, c'est fait.
- La sortie se régénère automatiquement pendant que vous tapez (avec une demi-seconde de pause). Pas besoin de cliquer sur un bouton de build.
Quand c'est utile
Cinq situations concrètes où ça vous fait gagner des heures de saisie manuelle :
- Prise en main d'une API existante. L'équipe backend a publié une spec OpenAPI. Collez-la ici, obtenez chaque forme de requête et réponse typée en quelques secondes. Construisez un wrapper `fetch` typé autour d'elles et votre IDE auto-complète chaque endpoint.
- Maintenir les types en phase avec le backend. La spec est le contrat. Relancez l'outil chaque fois que le backend livre un nouvel endpoint, collez le nouveau `openapi.ts` dans votre projet, le compilateur TypeScript signale chaque endroit à mettre à jour.
- Générer un SDK typé depuis une API publique. Stripe, GitHub, Linear et la plupart des SaaS modernes publient une spec OpenAPI. Déposez-la ici et vous avez un client typé en une minute, sans `any` nulle part.
- Écrire une fixture de test depuis une vraie forme. Vous avez besoin d'un `Pet` mocké pour un test. Générez les types, survolez le type dans votre éditeur, l'IDE vous montre chaque champ requis. Plus besoin de deviner ce que l'API renvoie vraiment.
- Migration de Swagger 2.0 / OpenAPI 3.0 vers 3.1. Les deux versions sont prises en charge. Collez l'ancienne spec, régénérez, comparez le diff : vous voyez maintenant quels champs ont gagné une sémantique `nullable` ou migré vers un tagged union.
Pour tester les vrais endpoints une fois les types en place, le testeur de requêtes HTTP parle toutes les méthodes, et le générateur de mock API peut remplacer le vrai backend pendant que vous construisez le frontend.