cURL a Ruby
Pega un comando curl y obtén un script de Ruby con net/http de la biblioteca estándar, sin gemas.
cURL a Ruby convierte por completo en tu navegador. Los comandos con tokens o credenciales nunca se suben.
Abrir cURL a Python
Acerca de cURL to Ruby
La documentación de las API se escribe en curl y las aplicaciones se escriben en Ruby, así que la misma traducción se repite a mano una y otra vez. Este conversor analiza los flags que importan —método, cabeceras, datos, autenticación básica y el manejo de consulta de -G— y genera un script sobre net/http, que viene con Ruby y no necesita instalar nada. Un cuerpo JSON se representa como hash y pasa por JSON.generate, así que es fácil de editar antes de ejecutarlo.
Características
- net/http de la biblioteca estándar: no hay que instalar nada
- Cabeceras, cuerpo, cadenas de consulta y autenticación básica
- Cuerpos JSON como hash de Ruby editable
- basic_auth en lugar de una cabecera Authorization a mano
- Verbos no estándar mediante Net::HTTPGenericRequest
- La conversión ocurre por completo en tu navegador
Cómo usar cURL to Ruby
- Copia el comando curl de la documentación de la API
- Pégalo en el panel izquierdo
- Revisa el Ruby generado a la derecha
- Cópialo o descárgalo como fichero .rb
Ejemplo
Entrada
curl -X POST https://api.example.com/users -H "Content-Type: application/json" -d '{"name":"Ada"}'
Salida
request = Net::HTTP::Post.new(uri)
request["Content-Type"] = "application/json"
request.body = JSON.generate({ "name" => "Ada" })
El cuerpo llega como hash editable, no como un bloque entrecomillado.
Errores comunes y solución de problemas
- El script lanza un error de verificación SSL. — Suele ser un certificado autofirmado o interno. Apunta OpenSSL a tu paquete de CA en vez de desactivar la verificación: el flag -k no tiene equivalente seguro y no se traduce.
- La API rechaza el cuerpo de la petición. — Comprueba que la cabecera Content-Type sobrevivió a la copia. net/http no la añade sola, y un JSON sin ella se interpreta a menudo como formulario.
- No se siguen las redirecciones. — El flag -L no tiene equivalente directo: net/http devuelve la respuesta 3xx y deja la decisión en tus manos. Comprueba Net::HTTPRedirection y repite la petición.
Preguntas frecuentes
- ¿El Ruby generado necesita alguna gema?
- No. Usa net/http, uri y json, que vienen con Ruby, así que el script funciona en una instalación estándar sin instalar nada.
- ¿Por qué net/http y no Faraday o HTTParty?
- El código de biblioteca estándar funciona en cualquier parte sin Gemfile, lo que lo hace la opción más segura para pegar en un proyecto ajeno. Migrarlo después a una gema es sencillo.
- ¿Cómo se gestiona la autenticación básica?
- Un flag -u se convierte en request.basic_auth con usuario y contraseña como argumentos separados, que es la forma idiomática y evita codificar en Base64 a mano.
- ¿Qué pasa con un verbo HTTP poco común?
- Los verbos sin clase propia en Net::HTTP, como PURGE, se emiten con Net::HTTPGenericRequest indicando el método como cadena.
Herramientas relacionadas
- curl a Python — Convierte un comando curl en un script de Python con requests.
- curl a Node.js — Convierte un comando curl en código de Node.js con axios.
- curl a PHP — Convierte un comando curl en un script PHP con la extensión cURL.
- curl a Go — Convierte un comando curl en código de Go con net/http.
- cURL to PowerShell — Convert a curl command to PowerShell Invoke-RestMethod.
- cURL a Fetch — Convierte un comando curl en una llamada fetch() de JavaScript.
Todas las herramientas de ArrayKit