Conversor cURL para Ruby (Net::HTTP e Faraday)
Converta comandos cURL em código Ruby limpo e idiomático utilizando Net::HTTP, URI, Faraday e manipulação nativa de JSON.
#!/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}"
endPrivacidade 100% no Cliente
Toda a análise de comandos cURL, extração de tokens e geração de código Ruby ocorrem na memória do seu navegador sem envio a servidores.
Motores Duplos Net::HTTP e Faraday
Gere scripts sem dependências com a biblioteca padrão Net::HTTP ou utilize conexões modernas do Faraday, HTTParty e HTTP.rb com suporte a middlewares.
Paridade Completa em Produção
Suporta requisições com JSON, dados urlencoded, upload multipart, autenticação Basic/Bearer, redirecionamentos e timeouts.