Validador OpenAPI 3.1

Cole um documento OpenAPI 3.1 em JSON ou YAML para verificar sua estrutura de nível superior. A ferramenta procura o campo openapi, um objeto info com title e version e um objeto paths. É uma verificação estrutural, então não valida as palavras-chave de schema do 3.1, e alguns padrões compatíveis com o 3.1 geram um aviso ou um erro que vale a pena conhecer.

Como verificar um documento 3.1

  1. 1

    Cole sua spec 3.1

    Cole o documento com `openapi: 3.1.0` (ou outro valor 3.1.x) no campo, em JSON ou YAML.

  2. 2

    Execute a verificação

    Avance para a etapa de resultados para ver os erros e os avisos.

  3. 3

    Leia as notas do 3.1

    Confira se um item sinalizado é um erro real ou um dos padrões do 3.1 descritos abaixo.

  4. 4

    Complete com um linter completo

    Use um validador completo para as regras do JSON Schema 2020-12 quando a estrutura estiver limpa.

O que esta ferramenta faz com arquivos 3.1

A versão 3.1 alinha os schemas ao JSON Schema 2020-12. Este validador não lê o interior dos schemas. Ele inspeciona apenas o nível superior e as entradas de caminho, então recursos de schema do 3.1, como arrays de tipos ou const, não passam nem falham aqui. O valor da versão também não é verificado: qualquer campo openapi conta como presente.

Dois padrões do 3.1 para observar

Padrão no seu arquivo 3.1 O que a ferramenta informa
Objeto webhooks e nenhum objeto paths Erro: objeto ‘paths’ ausente.
Operação trace em um caminho Aviso: método desconhecido ‘trace’ no caminho
$ref como chave em um item de caminho Aviso: método desconhecido ‘$ref’ no caminho

O OpenAPI 3.1 permite descrever apenas webhooks e omitir paths. Esta ferramenta exige paths, então um arquivo assim é reportado com erro, mesmo que a especificação o permita. Adicionar um objeto vazio paths: {} atende à verificação.

A lista de métodos usada aqui é get, post, put, patch, delete, head, options, além de parameters, summary, description e servers. O método trace existe na especificação, mas não está nessa lista, então gera um aviso que você pode ignorar se for intencional. Avisos não tornam o documento inválido.

Um exemplo prático

openapi: 3.1.0
info:
  title: Events API
  version: 2.0.0
webhooks:
  newEvent:
    post:
      summary: Event delivered

Resultado: um erro, “objeto ‘paths’ ausente.” Adicione paths: {} e a estrutura passa.

Quando usar isto e quando ir além

Use esta página para confirmar que um arquivo 3.1 está bem formado antes de abrir um pull request ou compartilhá-lo com um parceiro. As verificações são rápidas e as mensagens são simples. Com a estrutura correta, as regras de schema do 3.1 ainda precisam de um linter completo, porque é aí que se escondem a maioria dos erros reais: declarações de tipo inválidas, referências quebradas e definições de resposta ausentes. Trate as duas etapas como complementares, não como alternativas.

Se um aviso for intencional, como trace, registre isso no seu pull request para que os revisores não se perguntem o motivo. Avisos nunca mudam o resultado de válido, então podem ser mantidos com segurança. Os erros são os itens a resolver antes de compartilhar o arquivo.

Perguntas frequentes

Não. Ela não olha dentro dos objetos de schema, então as palavras-chave do JSON Schema 2020-12 não são verificadas. Ela cobre apenas a estrutura de nível superior e as entradas de caminho.

A verificação exige um objeto paths. Um arquivo 3.1 só com webhooks não tem esse objeto, então reporta um erro de paths ausente. Adicione um paths: {} vazio para passar.

Não. Ela apenas verifica se existe um campo openapi ou swagger, não qual é o valor.

Não necessariamente. trace é uma operação válida na especificação. A ferramenta apenas não a inclui na lista de métodos conhecidos.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas

Guias e casos de uso