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.

...

Esta verificação serve para garantir que não haja nenhum caracter do tipo "�", configurando um problema de enconding. Para corrigir, verifique seu arquivo OpenAPI e ajuste as ocorrências desses caracteres.

Verifique o encode do arquivo (Deve ser UTF-8).

should be complient with OpenAPI in version 3.0'

...

As propriedades "url" e "variables" devem existir dentro da propriedade "servers". Para corrigir este erro, ajuste o arquivo OpenAPI de modo que exista a propriedade "servers", com suas respectivas propriedades "url" e "variables".

should have an URL

...

starting with {{host}}

A URL As URLs descritas dentro da propriedade "url" (dentro de "servers") deve iniciar com o valor "{{host}}". Isso é importante para que o site consiga fazer substituições desse placeholder por ambientes para sandbox.

should have an URL consistent with our model

A URL descritas dentro da propriedade "url" (dentro de "servers") devem cumprir as regras da seguinte expressão regular: /(?:.*)\/api\/ devem cumprir as regras da seguinte expressão regular: /(?:.*)\/api\/(?:.*)\/v[0-9]*$/ . Um erro comum é a adição desnecessária de uma barra ("/") ao final da URL. Corrija a URL do servidor para que o erro pare de ser apontado.

...

Informações

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

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

2.000 -> 2.001 100 : Subindo versão menor

2.000 -> 3.000 : Subindo versão maior

...

O OpenAPI deve utilizar responses padronizadas para casos de erros (ErrorModelErrorModelBase e ErrorDetail). Maiores informações podem ser encontradas no nosso Guia de Implementação de Integrações.

xtotvs:

paths:

should contain xtotvs

...

inside 'paths'

A propriedade "x-totvs" deve existir em todos os "paths". 

should contain xtotvs/productinformation as an array inside 'paths'

A propriedade "productInformation" deve existir dentro de productInformation", dentro da "x-totvs" dos "paths", e deve ser do tipo array.

should contain 'product' as a key in productInformation, inside 'paths'

...

Todos os produtos que forem declarados nos "productInformation" de cada um dos "paths" do OpenAPI devem estar presentes também no "x-totvs" da "info". Essa verificação se faz necessária pois sempre que um endpoint é implementado em um produto, este produto deve ser explicitado no cabeçalho da especificação de API ("info"), facilitando o acesso a informação de quem lê o arquivo OpenAPI.

Content-Type:

should be one of the supported/allowed ContentTypes

O "Content-Type" definido deve ser um dos permitidos, que são os seguintes:

-audio/aac

-application/x-abiword

-application/octet-stream

-video/x-msvideo

-application/vnd.amazon.ebook

-application/x-bzip

-application/x-bzip2

-application/x-csh

-text/css

-text/csv

-text/xml

-application/msword

-application/vnd.ms-fontobject

-application/epub+zip

-image/gif

-text/html

-image/x-icon

-text/calendar

-application/java-archive

-image/jpeg

-application/javascript

-application/json

-audio/midi

-video/mpeg

-application/vnd.apple.installer+xml

-application/vnd.oasis.opendocument.presentation

-application/vnd.oasis.opendocument.spreadsheet

-application/vnd.oasis.opendocument.text

-audio/ogg

-video/ogg

-font/otf

-image/png

-application/pdf

-application/vnd.ms-powerpoint

-application/x-rar-compressed

-application/rtf

-application/x-sh

-image/svg+xml

-application/x-shockwave-flash

-application/x-tar

-image/tiff

-application/typescript

-font/ttf

-application/vnd.visio

-audio/x-wav

-audio/webm

-video/webm

-image/webp

-font/woff

-font/woff2

-application/xhtml+xml

-application/vnd.ms-excel

-application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

-application/xml

-application/vnd.mozilla.xul+xml

-application/zip

-video/3gpp

-audio/3gpp

-video/3gpp2

-audio/3gpp2

-application/x-7z-compressed

should have matching body content

Para endpoints de arquivos binários, é obrigatório que o schema siga a seguinte estrutura (Com "type": "string" e "format":"binary") (https://swagger.io/docs/specification/describing-request-body/file-upload/)


Bloco de código
languageyml
requestBody:
  content:
    image/png:
      schema:
        type: string
        format: binary


Schemas:

Filename:

should start with uppercase letter

...