Conversor de coleções API

Cole os dados ou selecione um arquivo e escolha o formato de saída. Confira os métodos, URLs e cabeçalhos extraídos antes de copiar ou baixar a conversão.

Funciona localmente no seu navegador
A análise é executada integralmente no seu navegador. Nenhum dado é enviado por upload ou para uma API.

O conversor lê texto colado ou um arquivo local. Ele nunca chama um endpoint de API nem importa uma coleção remota.

Resumo da conversão
Requisições encontradas
NomeMétodoURLCabeçalhos
Cole uma coleção ou requisição para ver uma prévia local.
Formato de saída

Mova requisições de API entre formatos comuns de desenvolvimento

Revise o resultado gerado antes de salvá-lo. Valores de autenticação ficam apenas nesta aba; substitua-os por variáveis seguras antes de compartilhar.

Como converter uma coleção aqui

Cinco entradas — coleções do Postman, exportações do Insomnia, requisições do Bruno, documentos OpenAPI ou Swagger e comandos cURL — e quatro saídas: OpenAPI 3.0.3, Postman v2.1, cURL e JavaScript Fetch. As vinte combinações foram executadas com dados de requisição reais enquanto esta página era escrita.

A conversão é JavaScript no navegador. Com o painel de rede aberto, converter uma coleção de 2,2 MB não gerou nenhuma requisição: nenhuma coleção, URL ou credencial é enviada, e nenhum endpoint citado na entrada é chamado.

  1. Cole o texto na caixa ou use Escolher arquivo local para um arquivo .json, .bru ou .txt. Detectar automaticamente reconhece as cinco formas usuais; os formatos nomeados servem para entradas que estão sendo lidas errado.
  2. Escolha OpenAPI 3.0, Postman v2.1, cURL ou Fetch JavaScript como saída e clique em Converter localmente. O resumo informa quantas requisições foram encontradas na origem e quantas foram mescladas.
  3. Leia a tabela antes do resultado: nome, método, URL e quantidade de cabeçalhos ativos de cada requisição, até as primeiras 100 linhas.
  4. Copiar resultado ou Baixar resultado leva o resultado embora — o arquivo se chama kivtools-api-conversion.json, .js ou .txt. Limpar apaga a entrada junto com o resultado anterior.

Regras de conversão e limites

O que é lido em cada entrada

Pastas do Postman viram nomes no formato "Pasta / Requisição", e valores da lista de variáveis da própria coleção são substituídos em URLs, cabeçalhos e corpos, então um {{baseUrl}} definido no arquivo chega como endereço real. Um marcador que o arquivo nunca define fica exatamente como escrito, em vez de ser adivinhado.

Documentos Swagger 2.0 são lidos por host, basePath e schemes: parâmetros com in: body viram corpo da requisição com o tipo consumes declarado e campos in: formData viram dados de formulário multipart. De arquivos Bruno são lidos o bloco do método, a URL e o bloco de cabeçalhos; o resto do arquivo é ignorado.

Opções de cURL que são entendidas

O analisador aceita -X/--request, -H/--header, -d/--data/--data-raw/--data-binary/--data-urlencode, -F/--form/--form-string, -u/--user, -A/--user-agent, -b/--cookie, -e/--referer e --url, e junta linhas terminadas em barra invertida antes de começar. -u user:pass vira um cabeçalho Authorization: Basic, e -A, -b e -e viram User-Agent, Cookie e Referer.

Uploads sobrevivem à conversão: -F "file=@photo.png" troca o método para POST como o curl faz e volta como campo de arquivo no Postman, argumento -F no cURL ou entrada FormData no Fetch. Um corpo lido do disco continua sendo referência de arquivo — -d @payload.json é reescrito como --data @payload.json, enquanto --data-raw @payload.json mantém o sentido literal.

Regras que a saída OpenAPI segue

Um modelo de caminho sobrevive à ida e volta: /items/{id} convertido de um documento OpenAPI para outro continua /items/{id} em vez de chegar como /items/%7Bid%7D. Uma query string vira parâmetros query com os valores que estavam na URL, e um caminho com dois métodos vira um item de caminho com duas operações.

Um documento OpenAPI não pode ter duas operações para o mesmo caminho e método, então pares repetidos são mesclados e a linha de status informa quantos. Requisições para hosts diferentes mantêm o próprio servidor, e o primeiro host vira o servidor do documento.

O que o resultado é, e o que não é

O OpenAPI gerado traz valores de exemplo em vez de schemas: um corpo vira objeto de exemplo e cada operação recebe uma resposta reservada 200 Successful response. É um documento inicial editável, não uma especificação validada, e não inventa os modelos de resposta que não estavam na origem.

Cabeçalhos e valores de autenticação são copiados literalmente, por isso a página pede que sejam trocados por variáveis antes de compartilhar o resultado. Uma conversão que falha apaga o resultado anterior em vez de deixá-lo na tela, para que um documento antigo nunca seja confundido com o atual. Entradas grandes continuam rápidas: 5.000 requisições em 2,2 MB levaram cerca de 65 ms e 100 requisições em 43 KB cerca de 10 ms.

Ferramentas recentes: