Páginas filhas
  • Validador Automatizado de APIs: Validações realizadas e formas de correção

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

O nome do arquivo OpenAPI deve trazer a mesma versão contida na "info" deste mesmo arquivo. Para corrigir esse erro, faça o ajuste da versão, garantindo a consistência entre o nome do arquivo e as informações contidas na "info".

should be backward compatible with minor versions

Esse arquivo OpenAPI é referente a uma nova versão minor, porém o mesmo está apresentando "breaking changes" em relação à versão minor anterior.

Mudanças permitidas: 

→ Novos Endpoints

→ Novas Propriedades no Schema (Desde que a API continue funcionando apenas com as que existiam anteriormente).

Mudanças que exigem uma nova versão major:

→ Endpoints removidos ou com assinatura alterada

→ Parâmetros obrigatórios adicionados

→ Parâmetros removidos ou renomeados

→ Propriedades do schema removidas ou renomeadas

Informações

De acordo com o versionamento semântico, somente trabalhamos com versões minor enquanto não existe quebra de contrato.

Quando a quebra de contrato se faz necessária, é preciso subir uma versão major.

Quando esse erro acontece, ele apresenta um sumário completo da comparação entre as duas APIs, para ficar claro o que está ok e o que está causando essa quebra

Veja o exemplo abaixo:

Bloco de código
==========================================================================
==                            API CHANGE LOG                            ==
==========================================================================
                                  Filial                                  
--------------------------------------------------------------------------
--                            What's Changed                            --
--------------------------------------------------------------------------
- GET    /Branches
  Return Type:
    - Changed 200 OK
      Media types:
        - Changed application/json
          BackwardCompatible: Broken compatibility
  isBackwardCompatible: false
  - changed: 
    property: items
    isBackwardCompatible: false
    type: array
    isChangeRequired: false
    properties: 
      isBackwardCompatible: false
      - add: propriedade2_6      
      - delete: propriedade2_3

A partir desse relatório, entendemos que em GET /Branches, existiu quebra de compatibilidade no retorno 200 OK.

Isso ocorreu porque a propriedade chamada "propriedade2_3" foi deletada do schema.

Atenção para o valor de "isBackwardCompatible".  Sempre que for "false", aponta aonde ocorreu a quebra de contrato, enquanto, se possuir valor "true", representa uma mudança aceitável, sem comprometer a compatibilidade com a versão minor anterior.

should have anything different from the previous minor version, beside x-totvs

Esse arquivo OpenAPI é referente a uma nova versão minor, porém não existiu nenhuma diferença entre esta e a versão anterior.

Qual a intenção dessa nova versão?

Informações

Apenas mudar informações nas propriedades "x-totvs" não exige subir versão. Estas são apenas para documentação, não oferecem mudança de fato na API.

Endpoints:

shouldn't contain 'post', 'put', 'get' or 'delete' in the URL

...