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.

...

A especificação de API deve conter estar de acordo com os padrões OpenAPI (diferente do Swagger), contendo a propriedade "openapi" (não a propriedade "swagger"). Para corrigir o erro, ajuste essa propriedade. Para saber mais sobre as diferenças entre especificações OpenAPI e Swagger, visite esta documentação.

Servers:

should have a 'servers' property with 'URL' and 'variables'

...

Nenhum endpoint pode conter, em sua url (path), métodos HTTP. O path do endpoint deve especificar apenas o caminho recurso que o usuário enviará a requisição.

...

Todos os schemas referenciados no arquivo Open API devem conseguir ser derreferenciados. O algoritmo de derreferenciação acessa cada uma das referências à schemas e injeta todo o conteúdo do jsonSchema externo no externo dentro do objeto parseado do OpenAPI. Logo, um schema que não pôde ser derreferenciado é um schema que não conseguiu ser acessado da forma correta. Qualquer erro de estruturação do arquivo jsonSchema pode causar uma falha no processo de parsing do arquivo (processo de transformação do arquivo json em objeto). Uma referência a um link quebrado, ou um arquivo/propriedade inexistente são causas comuns do disparo desse erro.

should contain the same Id property name in URL and body

...

should contain path param defined 'params' property

Cada um dos paths (endpoints) deve possuir uma propriedade "parameters", seja geral (como propriedade de um determinado path) ou especifica (uma propriedade "parameters" dentro de cada um dos métodos HTTP de um determinado endpointO ID definido em um PATH também deve estar definido dentro da propriedade “Parameters” (seja direto no path ou nos verbos HTTP).

should be 'required=true' when final path param

...

A propriedade "productInformation" do "x-totvs" da "info" deve ser um array de objetos. Além disso, a propriedade "product" deve existir dentro da desta "productInformation" do "x-totvs" da info. Essas verificações se fizeram necessárias pois, em convenções anteriores de desenvolvimento de especificações de API, os produtos eram declarados como objetos, tendo o nome do produto como chave.

segment name should be standardized

...

Por convenção, o nome do arquivo jsonSchema não deve conter a letra "v" para evidenciar a versão do schema (pois a letra "v" é utilizada apenas nos títulos dos arquivos OpenAPI, como por exemplo "JobScheduler_v1_001.json). Para corrigir este erro, ajuste o nome do arquivo, retirando a letra "v" e deixando apenas os numerais referentes a versão (ex. JobScheduler_1_000.json).

...

A propriedade "x-totvs" dentro da "info" do schema deve ser um objeto e . Este objeto por sua vez deve, obrigatoriamente, possuir uma a propriedade "productInformation", sendo esta um array.

should have available as a boolean type inside x-totvs

A propriedade "available", dentro dos "x-totvs" de cada um dos types deve obrigatoriamente ser do tipo "boolean". Essa verificação se fez necessária pelo fato de alguns OpenAPIs schemas estarem especificando os campos available com strings (ex. "true"/"false"), fazendo com que a informação pudesse ser interpretada de forma equivocada pela nosso portal de referências de APIs.

...

A propriedade "x-totvs" deve ser descrita como um array, quando existir dentro de alguma das "properties", dentro de "definitions", nos jsonSchemas. Esse caso pode ser observado no schema AppliedMatrix_1_000.json. Porém o x-totvs pode também não ser especificado (como no schema Absence_1_000.json) e continuar dentro dos padrões.

should have the property 'product' correctly spelled

...

Todas as propriedades "required" dos "x-totvs" dos types devem ser do tipo boolean (true ou false). Essa verificação se fez necessária pelo fato de alguns OpenAPIs schemas estarem especificando os campos available com strings (ex. "true"/"false"), fazendo com que a informação pudesse ser interpretada de forma equivocada.

...

Todas as propriedades "canUpdate" dos "x-totvs" dos types devem ser do tipo boolean (true ou false). Essa verificação se fez necessária pelo fato de alguns OpenAPIs schemas estarem especificando os campos available com strings (ex. "true"/"false"), fazendo com que a informação pudesse ser interpretada de forma equivocada.

...