Ébaucher des modèles de réponse API
Fournissez des exemples représentatifs avec objets imbriqués, variantes et valeurs nulles. Relisez ensuite les noms proposés et les champs réellement garantis par le fournisseur.
Inférez des interfaces TypeScript, types, schémas Zod ou JSON Schema à partir des objets et tableaux d’un exemple JSON, localement.
Transformez un exemple JSON en interfaces ou types TypeScript, en schémas Zod ou en JSON Schema. Le générateur parcourt les objets imbriqués et tous les éléments des tableaux pour proposer un modèle réutilisable, au lieu de se limiter au premier élément. Vous obtenez une base à relire et à adapter à votre API ; un échantillon ne révèle pas toutes les valeurs que le service pourra renvoyer. L’inférence est effectuée sur votre appareil et le code généré n’est pas exécuté dans le formulaire.
Le moteur identifie chaînes, nombres, booléens, objets, tableaux et null. Des valeurs de types différents conduisent à une union lorsque le contexte le permet. Les nombres TypeScript utilisent number ; une chaîne de date ou d’e-mail reste string, sans règle métier devinée à partir de son apparence. Un tableau vide ne permet pas de connaître son futur contenu et produit un type d’élément inconnu.
Dans un tableau d’objets, les propriétés observées sont regroupées. Un champ absent de certains éléments peut devenir optionnel ; l’option Tout rendre obligatoire remplace ce choix par un contrat plus strict, même si certains exemples fournis ne le respecteraient alors pas. Une propriété présente avec null n’est pas une propriété absente : sa nullabilité et son caractère facultatif sont deux informations différentes.
Choisissez interface ou type pour des déclarations TypeScript, Zod pour du code de validation à intégrer à une application, ou JSON Schema pour un document de schéma. readonly concerne les déclarations TypeScript ; ce n’est pas un gel d’objet à l’exécution. Le code Zod importe zod, que votre projet doit fournir, et place les schémas enfants avant leurs références parentes.
Les cibles partagent l’inférence, sans promettre des comportements identiques dans tous les contextes. TypeScript vérifie du code pendant le développement, pas automatiquement les réponses réseau. Zod nécessite un appel de validation dans votre application. Le JSON Schema généré ferme les objets avec additionalProperties: false ; les clés supplémentaires demandent donc une décision explicite avant intégration.
Collez ou importez un JSON valide. Évitez les données personnelles inutiles ; l’inférence a surtout besoin de la structure et des différents types observés.
Nommez le modèle puis sélectionnez la sortie. Ajustez le traitement des propriétés absentes et readonly lorsque la cible TypeScript le permet.
Vérifiez unions, propriétés facultatives et dépendances avant de copier ou exporter. Changer une entrée ou une option masque la précédente génération ; compilez ou validez ensuite dans votre projet.
Fournissez des exemples représentatifs avec objets imbriqués, variantes et valeurs nulles. Relisez ensuite les noms proposés et les champs réellement garantis par le fournisseur.
Générez des schémas de base puis ajoutez formats, limites et règles de votre application. L’outil ne déduit pas qu’un simple texte doit être une URL valide.
Placez des objets comparables dans un tableau pour révéler les propriétés présentes seulement dans certains cas. Complétez l’échantillon avec les situations rares connues.
Avec le nom racine Response et la cible interface, user devient un modèle User distinct. id est un number et name une string ; aucune valeur concrète n’est figée dans les types.
Entrée
{"user":{"id":1,"name":"Ada"}}Résultat
export interface Response {
user: User;
}
export interface User {
id: number;
name: string;
}Avec le nom Root et la cible Zod, ChildSchema précède RootSchema. Le code peut ainsi référencer le schéma enfant sans accéder à une constante avant son initialisation.
Entrée
{"child":{"id":1}}Résultat
import { z } from 'zod';
export const ChildSchema = z.object({
id: z.number(),
});
export type Child = z.infer<typeof ChildSchema>;
export const RootSchema = z.object({
child: ChildSchema,
});
export type Root = z.infer<typeof RootSchema>;Non. TypeScript décrit les valeurs attendues au développement. Pour vérifier une réponse reçue à l’exécution, ajoutez un validateur et utilisez réellement son résultat avant de faire confiance aux données.
Le moteur compare les objets d’un même tableau et repère les clés absentes dans certains éléments. Il ne peut pas déduire l’absence possible d’un champ à partir d’un seul objet qui le contient toujours.
L’exemple fournit une chaîne, pas une preuve de sa règle métier. Le générateur évite de transformer arbitrairement une apparence en validation. Ajoutez explicitement les formats et contraintes nécessaires.
Celui-ci propose plusieurs cibles et options de nommage ou de propriétés facultatives. L’outil autonome vise directement un schéma et distingue les entiers observés ; les deux reposent sur la même inférence partagée.
Outils associés
Des outils similaires ou complémentaires à celui-ci.
Générez un JSON Schema à partir d’un exemple JSON, localement dans votre navigateur.
Validez un document JSON avec un schéma et localisez précisément chaque erreur.
Générez des jeux de données fictifs réalistes en JSON, CSV ou SQL.