Sobes.tech
Junior

O que é um esquema JSON?

sobes.tech IA

Resposta da IA

O esquema JSON (JSON Schema) é um padrão léxico baseado em JSON para descrever a estrutura e as restrições dos dados no formato JSON. Permite validar, descrever e documentar dados JSON.

Objetivos principais:

  • Validação: Verificar se uma instância JSON corresponde a uma estrutura definida.
  • Documentação: Descrever o formato dos dados JSON.
  • Interação: Troca de metadados entre sistemas.

Componentes principais do esquema JSON:

  • Tipos de dados: string, number, integer, boolean, object, array, null.
  • Palavras-chave para restrições:
    • type: Tipo de dado esperado.
    • properties: Descrição das propriedades de um objeto. Cada propriedade tem seu próprio sub-esquema.
    • required: Lista de propriedades obrigatórias.
    • items: Descrição dos elementos de um array.
    • minLength/maxLength: Restrições de comprimento para strings.
    • minimum/maximum: Restrições para números.
    • pattern: Expressão regular para strings.
    • enum: Lista de valores permitidos.
    • allOf/anyOf/oneOf/not: Combinações lógicas de esquemas.
  • Palavras-chave para metadados:
    • title: Título curto do esquema.
    • description: Descrição detalhada do esquema.
    • default: Valor padrão.

Exemplo de esquema JSON:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Identificador único do usuário"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Exemplo de dados JSON válidos de acordo com este esquema:

{
  "id": 123,
  "username": "testuser",
  "isActive": false
}

Exemplo de dados JSON inválidos de acordo com este esquema:

{
  "id": "abc" // Tipo incorreto
  // Campo obrigatório "username" ausente
}

Utilização do esquema JSON em QA Automation:

  • Validação de respostas API: Verificar se as respostas JSON estão de acordo com o formato.
  • Validação de requisições: Verificar os dados JSON recebidos antes do processamento.
  • Geração de dados de teste: Usar o esquema para criar exemplos válidos (ou inválidos).
  • Documentação: Criar documentação de API que é atualizada automaticamente.

Existem bibliotecas para trabalhar com esquemas JSON em várias linguagens de programação (por exemplo, jsonschema para Python, json-schema-validator para Java).