cURL para Dart

Cole um comando curl e receba código Dart que faz a mesma requisição com package:http.

O cURL para Dart analisa seu comando no navegador. As credenciais do comando não saem do seu dispositivo.

Converter para Swift

Sobre cURL para Dart

A documentação do backend te dá um comando curl; um app Flutter precisa de Dart. Este conversor faz a ponte, analisando as opções do curl como o próprio curl faz e gerando código que usa package:http, o pacote do qual quase todo projeto Dart ou Flutter já depende. Os cabeçalhos são reunidos em um mapa tipado, um corpo JSON vira um mapa Dart codificado com jsonEncode em vez de uma string colada, e a autenticação básica é reconstruída com base64Encode a partir das credenciais decodificadas. Verbos sem atalho recaem em um http.Request, então um método incomum ainda gera código funcional.

Recursos

Como usar cURL para Dart

  1. Cole o comando curl da documentação da sua API
  2. Leia o Dart gerado à direita
  3. Confira os avisos sobre opções que não puderam ser levadas
  4. Copie o código ou baixe como arquivo .dart

Exemplo

Entrada

curl -X PUT https://api.example.com/users/1 -H 'Authorization: Bearer TOKEN' -d '{"role":"admin"}'

Saída

final response = await http.put(url, headers: headers, body: body);

O verbo vem de -X, e o corpo JSON é montado como mapa Dart antes de ser codificado.

Erros comuns e solução de problemas

Perguntas frequentes

O código gerado funciona em um app Flutter?
Sim. O package:http funciona igual no Flutter e no Dart puro, então o código da requisição pode ser colado como está em uma classe de serviço. Só vale trocar a impressão final pelo que o seu app faz com a resposta.
Devo usar package:http ou Dio?
O package:http é a opção oficial e mais leve, e cobre quase toda requisição. O Dio acrescenta interceptadores, cancelamento e utilidades multipart, e a API é parecida o bastante para traduzir esta saída sem dor.
Como um corpo JSON é convertido?
Ele é analisado e escrito como literal de mapa Dart, depois codificado com jsonEncode. Assim objetos e arrays aninhados continuam legíveis e você substitui valores por variáveis direto.
E se o método não tiver um auxiliar tipo http.get?
O código gerado monta um http.Request com o verbo como string e envia com send(), o que cobre PURGE, LINK ou qualquer outro que uma API use.
O comando curl é enviado para ser convertido?
Não. A análise e a geração de código acontecem no seu navegador, então tokens e chaves de API dentro do comando ficam no seu dispositivo.

Ferramentas relacionadas

Todas as ferramentas de ArrayKit