cURL para Swift

Cole um comando curl e receba código Swift que faz a mesma requisição com URLSession.

O cURL para Swift analisa seu comando no navegador. Tokens e credenciais do comando não saem do seu dispositivo.

Testar o cliente de API

Sobre cURL para Swift

A documentação de API fala curl e os apps iOS falam URLSession, e traduzir entre os dois à mão é trabalho repetitivo que convida a pequenos erros: um cabeçalho esquecido, um corpo deixado como string quando deveria ser JSON, uma opção de autenticação ignorada em silêncio. Este conversor analisa o comando curl como o próprio curl faz, incluindo as opções que mudam o método ou dobram credenciais em um cabeçalho, e gera Swift que usa só o Foundation. Um corpo JSON vira um dicionário Swift passado pelo JSONSerialization em vez de uma string opaca, então continua legível e fácil de editar.

Recursos

Como usar cURL para Swift

  1. Cole o comando curl, com as opções e o corpo
  2. Leia o Swift gerado à direita
  3. Confira os avisos por causa de opções que não puderam ser traduzidas
  4. Copie o código ou baixe como arquivo .swift

Exemplo

Entrada

curl https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'

Saída

var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

O método é deduzido do corpo, exatamente como o curl deduziria.

Erros comuns e solução de problemas

Perguntas frequentes

O Swift gerado funciona em iOS, macOS e Linux?
Sim. Ele usa URLSession do Foundation, disponível nas plataformas da Apple e no swift-corelibs-foundation no Linux, então o mesmo arquivo compila também em um projeto de servidor.
Posso obter código com async/await em vez de bloco?
A forma gerada usa uma data task com bloco de conclusão, que funciona em toda parte. Trocar por `let (data, response) = try await URLSession.shared.data(for: request)` é uma linha só.
Como um corpo JSON é tratado?
Ele é analisado e representado como dicionário [String: Any] do Swift, depois codificado com JSONSerialization. Assim a carga continua legível e você edita valores sem mexer em uma string escapada.
O que acontece com cookies de uma opção -b?
Viram um cabeçalho Cookie na requisição. Vale lembrar que o URLSession tem o próprio armazenamento de cookies, que pode acrescentar ou sobrescrever se a sessão não for configurada.
Meu comando curl é enviado ao convertê-lo para Swift?
Não. O comando é analisado e o código gerado no seu navegador, o que importa porque comandos curl de documentação e de logs muitas vezes contêm chaves de API reais.

Ferramentas relacionadas

Todas as ferramentas de ArrayKit