cURL → Ruby
cURLリクエストをNet::HTTP、URI、Faraday、HTTPartyなどのクリーンで実用的なネイティブRubyコードへ瞬時に変換します。

cURLからRubyコード変換 (Net::HTTP・Faraday・HTTParty)

cURLコマンドをNet::HTTP、URI、Faraday、JSON解析を活用したクリーンで慣用的なRubyコードへ瞬時に変換します。

100% クライアント側プライバシー
サーバー送信ゼロ
プリセット:
cURLコマンド入力POST
#!/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% クライアント側のプライバシー

cURLコマンドの解析、APIトークン抽出、Rubyコード生成はすべてブラウザのメモリ内でのみ実行されます。サーバーへのデータ送信は一切ありません。

Net::HTTPとFaradayのデュアルエンジン

外部gem依存のない標準ライブラリNet::HTTPスクリプト、モダンなFaraday、HTTParty、HTTP.rbクライアントコードを瞬時に出力します。

本番仕様の完全なオプション互換性

JSON本文、URLエンコードフォーム、マルチパートファイル送信、Basic/Bearer認証、リダイレクト追従、SSL検証、タイムアウトを完全網羅します。

技術リファレンス&アーキテクチャガイド

cURL to Ruby (Net::HTTP & Faraday) コード生成ツール — リファレンスガイド

cURLコマンドをNet::HTTP、URI、Faraday、JSON解析を活用したクリーンで慣用的なRubyコードへ瞬時に変換します。

主要パラメータ&設定項目

librarystring (net_http | faraday)

生成対象のRuby用HTTPクライアントライブラリ(標準Net::HTTPまたはFaraday)。

初期値: net_http
cleanDevToolsboolean

RubyのヘッダーパーサーでエラーとなるブラウザDevTools固有の疑似ヘッダー(:authority、:path等)を自動除去します。

初期値: true
parseJsonboolean

レスポンス本文をJSON.parse(res.body, symbolize_names: true)でシンボルキーのRubyハッシュに自動デシリアライズします。

初期値: true
sslVerifyboolean

SSL/TLS証明書検証モード(VERIFY_PEERまたはVERIFY_NONE)を設定します。

初期値: true

プロの活用テクニック&推奨設定

Net::HTTP.new

Net::HTTP.new(uri.host, uri.port)を直接初期化した場合、デフォルトではSSLが無効です。http.use_ssl = (uri.scheme == 'https')を明示するか、ブロック構文Net::HTTP.start(uri.host, uri.port, use_ssl: true)を利用して平文接続エラーを防ぎましょう。

Faradayのミドルウェア機構を活用してコードを共通化

FaradayはミドルウェアによるJSON自動シリアライズやリトライ、レスポンス処理に対応しています。Faraday.new内でf.request :jsonやf.response :jsonを設定することで、通信周りのボイラープレートを最小限に抑えられます。

JSON.parse

JSON.parse(response.body, symbolize_names: true)を利用すると、キーが文字列ではなくシンボル(例: data[:id])となり、Rubyの慣用構文に適合するとともにメモリ確保を効率化できます。

よくあるトラブルと解決策

Net::HTTPHeaderSyntaxError: invalid header name or value が発生する

ブラウザの開発者ツールからコピーしたcURLに含まれるHTTP/2疑似ヘッダー(:authorityや:methodなど)が原因です。「cleanDevTools」オプションを有効にしてコロンから始まるヘッダーを除去してください。

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

Ruby実行環境にCA証明書が正しくインストールされているか確認してください。開発・テスト環境の自己署名証明書の場合は、http.verify_mode = OpenSSL::SSL::VERIFY_NONEを設定して回避できます。

よくある質問 (FAQ)

RubyにおいてNet::HTTPとFaradayのどちらを選択すべきですか?▼

外部Gemへの依存を持たせたくない単体スクリプトや公開用Gem、AWS Lambda等のサーバーレス環境では標準ライブラリのNet::HTTPが最適です。一方、Railsアプリや本格的なAPI連携には、ミドルウェアやアダプター切り替えが柔軟なFaradayが推奨されます。

Basic認証やBearerトークンはどのようにRubyコードへ変換されますか?▼

cURLの-u user:passはNet::HTTPのreq.basic_auth(user, pass)やFaradayのf.request :authorization, :basicへ自動変換されます。Bearerトークンは標準的なAuthorization: Bearer <token>ヘッダーとして設定されます。

大容量ファイルのダウンロードやストリーミング処理は可能ですか?▼

Net::HTTPではhttp.request(req) { |res| res.read_body { |chunk| file.write(chunk) } }のようにブロックを渡すことで、メモリを圧迫せずにチャンク単位でストリーミング保存が可能です。Faradayでもストリーミング対応アダプターで同様の処理が行えます。

入力したcURLコマンドや認証情報が外部サーバーへ送信されることはありますか?▼

いいえ、一切送信されません。すべての構文解析・ヘッダー整理・Rubyコード生成処理はブラウザのクライアントサイドJavaScript内で完結しており、外部へのデータ送信やログ保存は行われません。

関連するおすすめ開発ツール

すべてのツール →
Kubernetes NetworkPolicy 生成ツール開発ツール

宣言的Kubernetes NetworkPolicyマニフェスト、ゼロトラストPod分離、名前空間インgress/egressルール、CIDR ipBlock、複数ポート定義を生成するための開発者向けガイド。

ツールを開く→
Kubernetes RBAC Role & ClusterRoleBinding YAML 生成ツール開発ツール

APIグループ、リソース操作(verbs)、Subject(ServiceAccount/User/Group)を指定して、Kubernetes RBACのRole、ClusterRole、RoleBinding、ClusterRoleBindingマニフェストを迅速に設計・生成します。

ツールを開く→
Kubernetes StatefulSet&Headless Service YAML ビルダー開発ツール

コンパニオン Headless Service、永続ボリュームテンプレート(volumeClaimTemplates)、レプリカ数、podManagementPolicy を備えた本番仕様の Kubernetes StatefulSet マニフェストを生成します。

ツールを開く→
Nginx Location優先順位テスター & マッチシミュレーター開発ツール

Nginx locationディレクティブのマッチングルール検証ガイド。修飾子優先順位(=、^~、~、~*)のリアルタイムシミュレーション。

ツールを開く→
Cloudflare Headers & Redirects 生成ツール開発ツール

Cloudflare Pagesの _headers および _redirects 構成、セキュリティヘッダーポリシー、エッジリライティングルールの開発者向け構文リファレンス。

ツールを開く→
Vercel.json 設定・アーキテクチャ開発ツール

エッジルーティング、リライト、セキュリティヘッダー、サーバーレス関数、Cron設定を網羅したvercel.jsonの実務開発者向けリファレンス。

ツールを開く→