cURL → Ruby
Convierte comandos cURL en código Ruby limpio y listo para producción usando Net::HTTP, URI, Faraday y HTTParty.

Generador de Código cURL a Ruby (Net::HTTP y Faraday)

Convierte comandos cURL en código Ruby limpio e idiomático utilizando Net::HTTP, URI, Faraday y gestión nativa de JSON.

Privacidad 100% del lado del cliente
Cero transmisión al servidor
Plantillas:
Comando cURLPOST
#!/usr/bin/env ruby
# Net::HTTP Client - Ruby Standard Library (Zero External Gems)
require 'net/http'
require 'uri'
require 'json'

begin
  uri = URI.parse("https://api.github.com/repos/octocat/Hello-World/issues")

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = (uri.scheme == 'https')

  request = Net::HTTP::Post.new(uri.request_uri)
  request["Accept"] = "application/vnd.github+json"
  request["Authorization"] = "Bearer gho_16C7e42F292c6912E7710c838347Ae178B4a"
  request["X-GitHub-Api-Version"] = "2022-11-28"
  request["Content-Type"] = "application/json"

  payload = {
    title: "Bug in auth session",
    body: "Need to verify token expiration handling",
    labels: ["bug", "priority"]
  }
  request.body = JSON.dump(payload)

  # Dispatch request
  response = http.request(request)

  puts "HTTP Status: #{response.code} #{response.message}"
  begin
    data = JSON.parse(response.body)
    puts "Parsed JSON Response:"
    puts JSON.pretty_generate(data)
  rescue JSON::ParserError
    puts "Raw Body: #{response.body}"
  end
rescue SocketError => e
  warn "Network connection error: #{e.message}"
rescue Net::OpenTimeout, Net::ReadTimeout => e
  warn "Request timed out: #{e.message}"
rescue StandardError => e
  warn "Execution failure: #{e.class} - #{e.message}"
end

100% Privacidad en el Navegador

Todo el análisis de cURL, extracción de tokens y generación de código Ruby se realiza exclusivamente en la memoria local del navegador sin peticiones al servidor.

Motores Duales Net::HTTP y Faraday

Genera scripts limpios sin dependencias externas usando Net::HTTP nativo o bloques modernos de Faraday, HTTParty y HTTP.rb con opciones SSL.

Compatibilidad Total de Producción

Manejo impecable de cuerpos JSON, datos form-urlencoded, archivos multipartes, autenticación Basic/Bearer, redirecciones y timeouts.

Referencia técnica y guía de arquitectura

Guía de desarrollo del generador de código cURL a Ruby (Net::HTTP y Faraday) — Guía de referencia

Convierte comandos cURL en código Ruby limpio e idiomático utilizando Net::HTTP, URI, Faraday y gestión nativa de JSON.

Parámetros clave y controles

librarystring (net_http | faraday)

Biblioteca cliente HTTP de Ruby de destino (Net::HTTP nativo o gema Faraday).

Por defecto: net_http
cleanDevToolsboolean

Elimina pseudocabeceras de DevTools (:authority, :path, :method) que provocan errores en el analizador de Ruby.

Por defecto: true
parseJsonboolean

Añade deserialización con JSON.parse(res.body, symbolize_names: true) para generar hashes idiomáticos con símbolos.

Por defecto: true
sslVerifyboolean

Configura el modo de verificación de certificados SSL (VERIFY_PEER o VERIFY_NONE).

Por defecto: true

Consejos profesionales y mejores prácticas

Al inicializar Net

Al inicializar Net::HTTP con Net::HTTP.new(uri.host, uri.port), SSL está desactivado por defecto. Establece http.use_ssl = (uri.scheme == 'https') o usa el bloque Net::HTTP.start(uri.host, uri.port, use_ssl: true) para evitar fallos de conexión.

Faraday ofrece middleware componible

Faraday ofrece middleware componible para serialización automática de JSON, reintentos y registros. Configura tu cliente con f.request :json y f.response :json para mantener el código desacoplado y limpio.

Al analizar respuestas JSON

Al analizar respuestas JSON, pasar symbolize_names: true convierte las claves en símbolos (ej. datos[:id] en vez de datos['id']), respetando las convenciones de Ruby y reduciendo el consumo de memoria.

Errores comunes y solución de problemas

Net::HTTPHeaderSyntaxError: invalid header name or value

Ocurre cuando cURL incluye pseudocabeceras de HTTP/2 originadas en el navegador (como :authority). Activa la opción 'cleanDevTools' para filtrar cabeceras con dos puntos iniciales.

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 peer certificate cannot be authenticated

Verifica que el almacén de certificados CA de tu sistema o contenedor esté actualizado. Para entornos de desarrollo con certificados autofirmados, puedes configurar http.verify_mode = OpenSSL::SSL::VERIFY_NONE.

Preguntas frecuentes (FAQ)

¿Cuándo debería elegir Net::HTTP frente a Faraday en Ruby?▼

Elige Net::HTTP para scripts independientes, gemas que no deben incluir dependencias externas o funciones serverless como AWS Lambda. Opta por Faraday en proyectos Rails y clientes de API que requieran pool de conexiones y middleware estructurado.

¿Cómo gestiona el generador la autenticación Basic y los tokens Bearer?▼

Los modificadores -u usuario:clave se transforman en req.basic_auth(usuario, clave) en Net::HTTP o f.request :authorization, :basic en Faraday. Los tokens Bearer se asignan como cabeceras estándar Authorization: Bearer <token>.

¿Cómo se descargan archivos grandes o respuestas por streaming en Ruby?▼

Con Net::HTTP, pasa un bloque a http.request(req) { |res| res.read_body { |chunk| file.write(chunk) } } para escribir fragmentos en disco sin cargar el archivo entero en memoria RAM. Faraday ofrece funcionalidad similar mediante adaptadores con soporte de streaming.

¿Se envían mis comandos cURL o credenciales a algún servidor externo?▼

No. Toda la conversión, limpieza de cabeceras y generación de código Ruby se ejecuta al 100% en tu navegador mediante JavaScript local. Ningún dato abandona tu equipo.

Herramientas y utilidades relacionadas

Todas las herramientas →
Generador de NetworkPolicy de K8S Referencia TécnicaDesarrollo

Guía técnica para generar manifiestos declarativos de NetworkPolicy en Kubernetes, aislamiento zero-trust de pods, reglas de ingress/egress, bloques CIDR y puertos múltiples.

Abrir herramienta→
Guía para Desarrolladores del Generador YAML de Kubernetes RBAC Role y ClusterRoleBindingDesarrollo

Diseñe manifiestos de Kubernetes RBAC para Role, ClusterRole, RoleBinding y ClusterRoleBinding con grupos de API, verbos de recursos y cuentas de servicio.

Abrir herramienta→
Guía del Desarrollador del Generador de YAML de StatefulSet y Headless Service de KubernetesDesarrollo

Genere manifiestos de Kubernetes StatefulSet de nivel de producción con Headless Service, plantillas de volumen persistente (volumeClaimTemplates), réplicas y podManagementPolicy.

Abrir herramienta→
Referencia para Desarrolladores de Nginx Location Match TesterDesarrollo

Guía técnica para probar la coincidencia de bloques location en Nginx y prioridades de modificadores en tiempo real.

Abrir herramienta→
Referencia de Desarrollador Cloudflare Headers y RedirectsDesarrollo

Referencia técnica y chuleta de sintaxis para configurar reglas _headers y _redirects de Cloudflare Pages, directivas de seguridad y reescrituras edge.

Abrir herramienta→
Guía de Configuración de Vercel.jsonDesarrollo

Referencia técnica para desarrolladores sobre vercel.json: enrutamiento edge, rewrites, cabeceras de seguridad, funciones serverless y tareas cron.

Abrir herramienta→