Linha de Produto: | TOTVSEAI |
---|---|
Segmento: | Framework |
Módulo: | API |
Função: | API - breakchanges |
Ticket: | |
Requisito/Story/Issue (informe o requisito relacionado) : | DEAITOOLS-203 |
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.
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;
{ "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\"}}}}}" }