Páginas filhas
  • DEAITOOLS-203 Ferramenta para validar se houve breackchanges



01. DADOS GERAIS

Linha de Produto:TOTVSEAI
Segmento:Framework
Módulo:API
Função:API - breakchanges
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :DEAITOOLS-203


02. SITUAÇÃO/REQUISITO

A necessidade de validar duas versões de uma dada API, e verificar se apesar de ter sido criada uma minor version, teve algum breakchange.

03. SOLUÇÃO

Avaliada uma ferramenta Open source, e esta foi utilizada, apenas modificada para gerar um JSON e criado endpoints que serão consumidos pelo validador.

Estão disponíveis 2 endpoint um para retorno em plain/text e um para retorno em JSON, tanto no verbo POST quanto GET, para o funcionamento deve-se mandar um body na requisição com as seguintes propriedades:

olderVersion: versão anterior que será verificada;

newerVersion: versão mais nova que será verificada;

ambas propriedade devem conter o OpenApi dereferenciado e em formato de uma string;


Exemplo de requisição
{
	"olderVersion": "{\"openapi\":\"3.0.1\",\"servers\":[{\"description\":\"API para realizar o gerenciamento de vendedores nos produtos TOTVS\",\"url\":\"http://{serverUrl}:{serverHttpPort}/api/crm/v1\",\"variables\":{\"serverUrl\":{\"default\":\"localhost\"},\"serverHttpPort\":{\"default\":\"8090\"}}}],\"info\":{\"description\":\"API para realizar o g... erro.\"},\"helpUrl\":{\"type\":\"string\",\"format\":\"uri\",\"description\":\"URI para documentação do erro.\"}}}}}}]}}}}}}}},\"components\":{\"parameters\":{\"InternalId\":{\"name\":\"InternalId\",\"in\":\"path\",\"required\":true,\"description\":\"Identificador único representando a entidade\",\"schema\":{\"type\":\"string\"}}}}}",
	"newerVersion": "{\"openapi\":\"3.0.1\",\"servers\":[{\"description\":\"API para realizar o gerenciamento de vendedores nos sdfsdprodutos TOTVS\",\"url\":\"http://{serverUrl}:{serverHttpPort}/asafsa/crm/v1\",\"variables\":{\"serverUrl\":{\"default\":\"localhost\"},\"serverHttpPort\":{\"default\":\"8090\"}}}],\"info\":{\"description\":\"API para realizar o gerenciamento de vendedores nos produtos TOTVS\"... erro.\"}}}}}}]}}}}}}}},\"components\":{\"parameters\":{\"InternalId\":{\"name\":\"InternalId\",\"in\":\"path\",\"required\":true,\"description\":\"Identificador único representando a entidade\",\"schema\":{\"type\":\"string\"}}}}}"
}