curl কমান্ডগুলিকে Ruby কোডে রূপান্তর করুন - API অনুরোধের জন্য ব্যবহারযোগ্য Ruby Net::HTTP কোড তৈরি করুন
# 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
এখানে কিছু সাধারণ curl কমান্ড রয়েছে যা আপনি 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
Ruby-এর Net::HTTP লাইব্রেরি HTTP অনুরোধ করার একটি শক্তিশালী উপায়। এখানে কিছু সাধারণ Ruby Net::HTTP প্যাটার্ন রয়েছে:
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
আপনার curl কমান্ড কপি করুন → ইনপুট বক্সে পেস্ট করুন → রূপান্তরিত Ruby Net::HTTP কোড পান
আমাদের কনভার্টার জটিল curl কমান্ড সমর্থন করে এবং সেগুলিকে Net::HTTP লাইব্রেরি ব্যবহার করে পরিষ্কার, দক্ষ Ruby কোডে অনুবাদ করে
আমাদের টুল এই সাধারণ curl অপশনগুলি পরিচালনা করে এবং সেগুলিকে উপযুক্ত Ruby Net::HTTP কোডে রূপান্তর করে:
উত্তর: জেনারেটেড Ruby Net::HTTP কোড Ruby 2.0 এবং তার উপরে সামঞ্জস্যপূর্ণ। পুরানো Ruby সংস্করণের জন্য, সামান্য সমন্বয় প্রয়োজন হতে পারে।
উত্তর: বেসিক জেনারেটেড কোডে ব্যাপক এরর হ্যান্ডলিং অন্তর্ভুক্ত নেই। প্রোডাকশন কোডের জন্য, আপনার Net::HTTPError বা কানেকশন সমস্যার মতো সম্ভাব্য এক্সেপশন পরিচালনা করতে begin/rescue ব্লক যোগ করা উচিত।
উত্তর: JSON রেসপন্সের জন্য, রেসপন্সকে একটি Ruby হ্যাশে পার্স করতে JSON.parse(response.body) ব্যবহার করুন। অন্যান্য ফরম্যাটের জন্য, আপনি র কন্টেন্টের জন্য response.body ব্যবহার করতে পারেন।
উত্তর: Net::HTTP লাইব্রেরি Ruby-এর স্ট্যান্ডার্ড লাইব্রেরির অংশ, তাই বেসিক HTTP অনুরোধের জন্য কোনো অতিরিক্ত জেম প্রয়োজন নেই। JSON হ্যান্ডলিং-এর জন্য, 'json' জেম Ruby 1.9 থেকে স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত আছে।
উত্তর: Ruby-তে ফাইল আপলোডের জন্য, আপনাকে Net::HTTP-এর সাথে মাল্টিপার্ট ফর্ম ডেটা ব্যবহার করতে হবে। আমাদের কনভার্টার -F
বা --form
অপশন সহ curl কমান্ডগুলি পরিচালনা করে এবং উপযুক্ত Ruby কোড তৈরি করে।
উত্তর: Ruby-এর Net::HTTP লাইব্রেরি HTTP::Cookie jar-এর মাধ্যমে কুকি পরিচালনা প্রদান করে। যখন আপনি কুকি পরিচালনা সহ curl কমান্ড রূপান্তর করেন (যেমন -b
বা --cookie
ব্যবহার করে), আমাদের টুল সঠিকভাবে কুকি পরিচালনা করে এমন Ruby কোড তৈরি করে।
উত্তর: curl দ্রুত কমান্ড-লাইন API পরীক্ষার জন্য চমৎকার হলেও, Ruby Net::HTTP আপনার Ruby অ্যাপ্লিকেশনের সাথে একীভূত হয় এমন একটি প্রোগ্রামাটিক পদ্ধতি প্রদান করে। curl কে Ruby-তে রূপান্তর করা Ruby ডেভেলপমেন্টে পরীক্ষা এবং বাস্তবায়নের মধ্যে সেতু তৈরি করতে সাহায্য করে।
Ruby দিয়ে কার্যকর API পরীক্ষার জন্য curl কমান্ড বোঝা অপরিহার্য। এখানে আমাদের কনভার্টার যে সাধারণ curl অপশনগুলি সমর্থন করে তার একটি দ্রুত রেফারেন্স রয়েছে:
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 connectionআমাদের Ruby কনভার্টার একাধিক হেডার, প্রমাণীকরণ, ডেটা পেলোড এবং বিভিন্ন অপশন সহ জটিল curl কমান্ডগুলি পরিচালনা করে। শুধু আপনার curl কমান্ড পেস্ট করুন এবং Net::HTTP লাইব্রেরি ব্যবহার করে পরিষ্কার, আধুনিক Ruby কোড পান।
Ruby Net::HTTP লাইব্রেরি নিয়ে কাজ করার সময়, দক্ষ এবং নিরাপদ API ইন্টারঅ্যাকশনের জন্য এই সেরা অনুশীলনগুলি অনুসরণ করুন:
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