Ce que fait cet outil OpenAPI
Le travail de front-end commence souvent avant que le back-end soit prêt, et l'écriture manuelle de types pour une API qui a déjà une spécification est un effort gaspillé. Collez un document OpenAPI 3.x ou Swagger 2.0 en JSON ou YAML et cet outil génère trois choses: des mock responses réalistes pour chaque opération, des TypeScript types pour tous les schémas, et un petit client fetch avec une fonction par terminal. Tout est généré dans votre navigateur, donc les spécifications privées ou internes de l'API ne sont jamais téléchargées.
Mode d'emploi
- Collez vos spécifications ou téléchargez le fichier. JSON et YAML sont acceptés.
- La liste des points d'extrémité montre chaque opération avec sa méthode et son chemin.
- Ouvrez l'onglet ** mock data** et sélectionnez une opération pour voir une réponse d'échantillon, construite à partir d'exemples de schéma, de formats et d'énumérations.
- Pour les interfaces générées à partir de
components/schemas(oudefinitionsdans Swagger 2), passer à TS types. - Passez à TS client pour un client prêt à l'emploi et copiez dans votre projet.
Comment les moqueries sont générées
- Les valeurs
exampleetexamplesde la spécification gagnent toujours. enumchoisit la première valeur;defaultest respectée.- Les formats de chaîne produisent des valeurs plausibles:
email,uuid,date-time,uri,ipv4et ainsi de suite. - Les noms des propriétés donnent des indices, donc
name,priceoucreatedAtsemblent réalistes. $ref,allOf,oneOfetanyOfsont résolus; les références récursives sont coupées en toute sécurité.- Les simulations sont déterministes par opération, donc elles ne changent pas à chaque mise à jour.
Utiliser le client généré
Le client exporte une constante BASE_URL et une fonction asynchrone par opération, nommée d'après son operationId (ou méthode et chemin si manquant), avec des paramètres de chemin tapés, des paramètres de requête et le corps de la requête, renvoyant la réponse tapée. Il dépend seulement de fetch, donc il fonctionne dans les navigateurs, Node 18+, Deno et Bun.