cURL para Ruby
Cole um comando curl e receba um script Ruby com net/http da biblioteca padrão, sem gems.
cURL para Ruby converte inteiramente no seu navegador. Comandos com tokens ou credenciais nunca são enviados.
Abrir cURL para Python
Sobre cURL to Ruby
A documentação das APIs é escrita em curl e as aplicações são escritas em Ruby, então a mesma tradução é feita à mão repetidamente. Este conversor analisa as flags que importam — método, cabeçalhos, dados, autenticação básica e o tratamento de query do -G — e gera um script sobre net/http, que vem com o Ruby e não exige instalar nada. Um corpo JSON é representado como hash e passa por JSON.generate, então é fácil editar antes de rodar.
Recursos
- net/http da biblioteca padrão: nada a instalar
- Cabeçalhos, corpo, query strings e autenticação básica
- Corpos JSON como hash Ruby editável
- basic_auth em vez de um cabeçalho Authorization manual
- Verbos não padrão via Net::HTTPGenericRequest
- A conversão acontece inteiramente no seu navegador
Como usar cURL to Ruby
- Copie o comando curl da documentação da API
- Cole no painel da esquerda
- Confira o Ruby gerado à direita
- Copie ou baixe como arquivo .rb
Exemplo
Entrada
curl -X POST https://api.example.com/users -H "Content-Type: application/json" -d '{"name":"Ada"}'
Saída
request = Net::HTTP::Post.new(uri)
request["Content-Type"] = "application/json"
request.body = JSON.generate({ "name" => "Ada" })
O corpo chega como hash editável, não como um bloco entre aspas.
Erros comuns e solução de problemas
- O script levanta erro de verificação SSL. — Costuma ser certificado autoassinado ou interno. Aponte o OpenSSL para o seu bundle de CA em vez de desativar a verificação: a flag -k não tem equivalente seguro e não é traduzida.
- A API recusa o corpo da requisição. — Confira se o cabeçalho Content-Type sobreviveu à cópia. O net/http não adiciona sozinho, e um JSON sem ele é interpretado muitas vezes como formulário.
- Redirecionamentos não são seguidos. — A flag -L não tem equivalente direto: o net/http devolve a resposta 3xx e deixa a decisão com você. Verifique Net::HTTPRedirection e refaça a requisição.
Perguntas frequentes
- O Ruby gerado precisa de alguma gem?
- Não. Usa net/http, uri e json, que vêm com o Ruby, então o script roda em uma instalação padrão sem instalar nada.
- Por que net/http e não Faraday ou HTTParty?
- Código de biblioteca padrão roda em qualquer lugar sem Gemfile, o que é mais seguro para colar em um projeto desconhecido. Migrar depois para uma gem é simples.
- Como a autenticação básica é tratada?
- Uma flag -u vira request.basic_auth com usuário e senha como argumentos separados, que é a forma idiomática e evita codificar em Base64 na mão.
- E um verbo HTTP incomum?
- Verbos sem classe própria no Net::HTTP, como PURGE, são emitidos com Net::HTTPGenericRequest indicando o método como string.
Ferramentas relacionadas
- curl para Python — Converta um comando curl em um script Python com a biblioteca requests.
- curl para Node.js — Converta um comando curl em uma requisição Node.js com axios.
- curl para PHP — Converta um comando curl em um script PHP com a extensão cURL.
- curl para Go — Converta um comando curl em código Go usando o pacote net/http.
- cURL to PowerShell — Convert a curl command to PowerShell Invoke-RestMethod.
- cURL para Fetch — Converta um comando curl em uma chamada fetch() de JavaScript.
Todas as ferramentas de ArrayKit