Esboçar modelos de resposta API
Forneça exemplos representativos com aninhamentos, variantes e null. Reveja depois nomes propostos e campos realmente garantidos pelo fornecedor.
Infira interfaces TypeScript, tipos, esquemas Zod ou JSON Schema a partir de objetos e arrays de um exemplo JSON, localmente.
Transforme um exemplo JSON em interfaces ou aliases TypeScript, esquemas Zod ou JSON Schema. O gerador percorre objetos aninhados e todos os elementos dos arrays, não apenas o primeiro. O resultado é uma base a rever segundo a API: uma amostra não revela todos os valores que um serviço poderá devolver. A inferência acontece no dispositivo e o código gerado não é executado no formulário.
O motor identifica strings, números, booleanos, objetos, arrays e null. Diferentes tipos observados podem formar uma união. Os números TypeScript usam number; strings semelhantes a datas ou emails mantêm-se string, sem regras de negócio adivinhadas. Um array vazio não revela elementos futuros e produz um tipo desconhecido.
Num array de objetos combinam-se as propriedades observadas. Um campo ausente em algumas entradas pode tornar-se opcional. Exigir todos os campos cria um contrato mais rigoroso que algumas amostras deixariam de cumprir. Um campo presente com null não está ausente: nulabilidade e opcionalidade são informações distintas.
Escolha interface ou type para declarações TypeScript, Zod para código de validação ou JSON Schema para um documento de esquema. readonly aplica-se a TypeScript, sem congelar objetos em execução. A saída Zod importa zod, que o projeto deve disponibilizar, e declara esquemas filhos antes das referências dos pais.
Os destinos partilham inferência, sem prometer comportamentos idênticos. TypeScript verifica código em desenvolvimento, não automaticamente respostas de rede. Zod requer uma chamada efetiva de validação. JSON Schema fecha os objetos com additionalProperties: false; decida explicitamente como tratar chaves adicionais antes de integrar.
Cole ou importe JSON válido. Evite dados pessoais desnecessários: interessam estrutura e diferentes tipos observados.
Dê um nome ao modelo e selecione a saída. Ajuste campos ausentes e readonly quando o destino TypeScript o permitir.
Verifique uniões, propriedades opcionais e dependências antes de copiar ou exportar. Alterar entradas ou opções oculta o resultado anterior. Compile ou valide depois no projeto.
Forneça exemplos representativos com aninhamentos, variantes e null. Reveja depois nomes propostos e campos realmente garantidos pelo fornecedor.
Gere esquemas básicos e acrescente formatos, limites e regras da aplicação. Uma string simples não é automaticamente considerada um URL válido.
Agrupe objetos comparáveis num array para revelar campos presentes apenas em alguns casos. Inclua situações raras conhecidas.
Com nome raiz Response e destino interface, user torna-se um modelo User separado. id é number e name string; os valores concretos da amostra não são fixados.
Entrada
{"user":{"id":1,"name":"Ada"}}Resultado
export interface Response {
user: User;
}
export interface User {
id: number;
name: string;
}Com nome raiz Root e saída Zod, ChildSchema precede RootSchema e evita referir uma constante antes da inicialização.
Entrada
{"child":{"id":1}}Resultado
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>;Não. TypeScript descreve valores esperados durante o desenvolvimento. Para verificar dados recebidos em execução, adicione um validador e use efetivamente o resultado antes de confiar na resposta.
Comparam-se objetos do mesmo array para encontrar chaves ausentes em algumas entradas. Um único objeto que contém sempre um campo não revela se esse campo poderá ser omitido.
A amostra fornece uma string, não prova a regra de negócio. O gerador evita validações arbitrárias com base no aspeto. Acrescente explicitamente formatos e restrições necessários.
Aqui existem vários destinos e opções de nomes ou campos opcionais. O gerador autónomo produz diretamente um esquema e distingue inteiros observados. Ambos usam a mesma inferência partilhada.
Ferramentas relacionadas
Ferramentas semelhantes ou complementares a esta.
Gere um JSON Schema a partir de um exemplo JSON, localmente no navegador.
Valide um documento JSON com um esquema e localize precisamente cada erro.
Gere conjuntos de dados fictícios realistas em JSON, CSV ou SQL.