A OpenAPI Specification 3.1 chega com uma mudança muito esperada por quem desenha, valida e opera APIs HTTP: alinhamento completo com o JSON Schema draft 2020-12. A diferença parece interna, mas toca diretamente ferramentas de documentação, geração de código, testes, gateways e contratos entre times.1

OpenAPI já é o formato comum para descrever APIs REST e HTTP de forma independente de linguagem. Quando bem mantida, uma definição OpenAPI permite que humanos e máquinas entendam capacidades de um serviço sem ler código-fonte, documentação paralela ou tráfego de rede.2

JSON Schema deixa de ser quase compatível

Nas versões anteriores, OpenAPI usava uma estrutura parecida com JSON Schema, mas não exatamente igual. Esse "quase" gerava custo real. Validações divergiam, bibliotecas precisavam de adaptações, geradores interpretavam campos de forma própria e desenvolvedores aprendiam exceções em vez de usar o padrão diretamente.

Com a versão 3.1, o schema do OpenAPI passa a se alinhar ao JSON Schema 2020-12. Para quem mantém plataforma de APIs, isso simplifica uma parte crítica do ciclo de vida: o mesmo vocabulário pode orientar contrato, validação de payload, documentação e automação.

O ganho não é apenas técnico. Quando schemas são ambíguos, times consumidores e provedores gastam energia negociando comportamento em produção. Uma definição mais compatível reduz espaço para interpretações e torna quebras de contrato mais visíveis antes do deploy.

Contrato de API vira artefato operacional

A especificação também adiciona um elemento de nível superior para webhooks registrados e gerenciados fora de banda. Isso reconhece uma realidade comum: APIs modernas não são só chamadas síncronas feitas pelo cliente. Muitos fluxos dependem de callbacks, eventos e notificações disparadas pelo provedor.

Outro ajuste relevante é o suporte a identificadores SPDX para licenças. Pode parecer detalhe burocrático, mas ajuda catálogos internos, portais de desenvolvedor e processos de conformidade a tratar licenciamento de forma padronizada.

O OpenAPI 3.1 ainda torna objetos PathItem opcionais em cenários que favorecem componentes reutilizáveis. Para plataformas grandes, isso conversa com a tentativa de construir bibliotecas de contratos, padrões internos e blocos compartilhados entre dezenas ou centenas de APIs.

Ferramentas precisam ser avaliadas

A adoção não deve ser automática. Ecossistemas que dependem de geração de clientes, mocks, validação em CI, gateways, catálogos e linters precisam verificar suporte real ao 3.1. O risco está em atualizar o arquivo e descobrir que parte da cadeia interpreta o contrato como 3.0.

O caminho prudente é escolher APIs piloto, validar o comportamento dos geradores, revisar regras de lint, comparar exemplos de payload e testar regressões em consumidores. A melhoria de compatibilidade com JSON Schema vale mais quando a ferramenta inteira entende a nova semântica.

Para times de produto, a mudança reforça a importância de tratar especificações como código. Um contrato OpenAPI precisa passar por revisão, versionamento, testes e documentação. Ele não pode ser uma exportação ocasional feita depois que a API já foi implementada.

OpenAPI 3.1 amadurece uma camada essencial da engenharia moderna: a API como interface pública, testável e governada. Ao reduzir o descompasso com JSON Schema, a especificação aproxima o contrato escrito do comportamento que plataformas precisam garantir em produção.


  1. OpenAPI Initiative, "OpenAPI Specification 3.1.0 Released", fev. 2021.
  2. OpenAPI Initiative, "OpenAPI Specification v3.1.0", 2021.