Convertissez les commandes curl en code Ruby - Générez du code Ruby Net::HTTP prêt à l'emploi pour les requêtes API
# Ruby Net::HTTP code will appear here # Example: require 'net/http' require 'uri' require 'json' uri = URI.parse('https://api.example.com/data') http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true if uri.scheme == 'https' request = Net::HTTP::Post.new(uri.path) request['Content-Type'] = 'application/json' request.body = JSON.dump({name: 'test'}) response = http.request(request) puts response.code puts response.body
Voici quelques commandes curl courantes que vous pouvez convertir en code Ruby :
curl https://api.example.com/users
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","email":"[email protected]"}' https://api.example.com/users
curl -X PUT -H "Authorization: Bearer token123" -d '{"status":"active"}' https://api.example.com/users/1
curl -X DELETE https://api.example.com/users/1
curl -H "X-API-Key: abc123" -H "Accept: application/json" https://api.example.com/data
La bibliothèque Net::HTTP de Ruby est un moyen puissant de faire des requêtes HTTP. Voici quelques modèles Ruby Net::HTTP courants :
require 'net/http' require 'uri' uri = URI.parse('https://api.example.com/upload') http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true if uri.scheme == 'https' request = Net::HTTP::Post.new(uri.path) request['Authorization'] = 'Bearer YOUR_TOKEN_HERE' # Create multipart form data boundary = "AaB03x" post_body = [] post_body << "--#{boundary}\r\n" post_body << "Content-Disposition: form-data; name=\"file\"; filename=\"document.pdf\"\r\n" post_body << "Content-Type: application/pdf\r\n\r\n" post_body << File.read('document.pdf') post_body << "\r\n--#{boundary}--\r\n" request['Content-Type'] = "multipart/form-data; boundary=#{boundary}" request.body = post_body.join response = http.request(request) puts response.body
require 'net/http' require 'uri' require 'json' uri = URI.parse('https://api.example.com/data') http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true if uri.scheme == 'https' http.open_timeout = 5 # seconds http.read_timeout = 5 # seconds begin request = Net::HTTP::Get.new(uri.request_uri) response = http.request(request) case response when Net::HTTPSuccess data = JSON.parse(response.body) puts data else puts "Error: #{response.code} - #{response.message}" end rescue Net::OpenTimeout puts "Connection timed out" rescue Net::ReadTimeout puts "Response timed out" rescue StandardError => e puts "Error making request: #{e.message}" end
Copiez votre commande curl → Collez-la dans la zone de saisie → Obtenez du code Ruby Net::HTTP converti
Notre convertisseur prend en charge les commandes curl complexes et les traduit en code Ruby propre et efficace utilisant la bibliothèque Net::HTTP
Notre outil gère ces options curl courantes et les convertit en code Ruby Net::HTTP approprié :
R : Le code Ruby Net::HTTP généré est compatible avec Ruby 2.0 et versions ultérieures. Pour les versions plus anciennes de Ruby, des ajustements mineurs peuvent être nécessaires.
R : Le code de base généré n'inclut pas de gestion d'erreurs étendue. Pour le code de production, vous devriez ajouter des blocs begin/rescue pour gérer les exceptions potentielles comme Net::HTTPError ou les problèmes de connexion.
R : Pour les réponses JSON, utilisez JSON.parse(response.body) pour analyser la réponse dans un hash Ruby. Pour d'autres formats, vous pouvez utiliser response.body pour le contenu brut.
R : La bibliothèque Net::HTTP fait partie de la bibliothèque standard de Ruby, donc aucun gem supplémentaire n'est requis pour les requêtes HTTP de base. Pour la gestion JSON, le gem 'json' est inclus dans la bibliothèque standard depuis Ruby 1.9.
R : Pour les téléchargements de fichiers en Ruby, vous devrez utiliser des données de formulaire multipart avec Net::HTTP. Notre convertisseur gère les commandes curl avec les options -F
ou --form
et génère le code Ruby approprié.
R : La bibliothèque Net::HTTP de Ruby fournit une gestion des cookies via le gestionnaire HTTP::Cookie. Lorsque vous convertissez des commandes curl qui incluent la gestion des cookies (en utilisant -b
ou --cookie
), notre outil génère du code Ruby qui gère correctement les cookies.
R : Alors que curl est excellent pour des tests d'API rapides en ligne de commande, Ruby Net::HTTP fournit une approche programmatique qui s'intègre à vos applications Ruby. Convertir curl en Ruby aide à combler le fossé entre les tests et l'implémentation dans le développement Ruby.
Comprendre les commandes curl est essentiel pour des tests d'API efficaces avec Ruby. Voici une référence rapide des options curl courantes que notre convertisseur prend en charge :
curl [options] [URL]
-X, --request METHOD
: Specify request method (GET, POST, PUT, DELETE, etc.)-H, --header LINE
: Add header to the request-d, --data DATA
: Send data in POST request-F, --form CONTENT
: Submit form data-u, --user USER:PASSWORD
: Server user and password-k, --insecure
: Allow insecure server connections-I, --head
: Show document info only-v, --verbose
: Make the operation more verbose-s, --silent
: Silent mode--connect-timeout SECONDS
: Maximum time for connectionNotre convertisseur Ruby gère des commandes curl complexes, y compris plusieurs en-têtes, l'authentification, les charges utiles de données et diverses options. Il suffit de coller votre commande curl et d'obtenir un code Ruby propre et moderne utilisant la bibliothèque Net::HTTP.
Lorsque vous travaillez avec la bibliothèque Net::HTTP de Ruby, suivez ces meilleures pratiques pour des interactions API efficaces et sécurisées :
require 'net/http' require 'uri' uri = URI.parse('https://api.example.com') Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http| # First request request1 = Net::HTTP::Get.new('/users') response1 = http.request(request1) # Second request (uses same connection) request2 = Net::HTTP::Get.new('/products') response2 = http.request(request2) end
require 'net/http' require 'uri' uri = URI.parse('https://api.example.com/data') begin response = Net::HTTP.get_response(uri) case response when Net::HTTPSuccess puts "Success: #{response.body}" when Net::HTTPRedirection puts "Redirection to: #{response['location']}" when Net::HTTPClientError puts "Client error: #{response.code} - #{response.message}" when Net::HTTPServerError puts "Server error: #{response.code} - #{response.message}" else puts "Unknown response: #{response.code} - #{response.message}" end rescue SocketError => e puts "Connection error: #{e.message}" rescue Timeout::Error puts "Connection timed out" rescue StandardError => e puts "Error: #{e.message}" end
require 'net/http' require 'uri' require 'json' uri = URI.parse('https://api.example.com/data') response = Net::HTTP.get_response(uri) begin data = JSON.parse(response.body) puts data['name'] rescue JSON::ParserError => e puts "Invalid JSON response: #{e.message}" end