الأدلةأدلة

واجهة أسعار الصرف لـ Ruby on Rails

واجهة أسعار الصرف لـ Ruby on Rails. دليل عملي يتضمن الشفرة والتخزين المؤقت وبيانات الحداثة.

20 سبتمبر 2026 · 7 دقائق للقراءة

نفّذ التكامل على الخادم دون كشف بيانات الاعتماد، واحتفظ بالمصدر ووقت الرصد.

  • احتفظ بمفتاح API على الخادم.
  • تحقق من رموز العملات والمبالغ.
  • خزّن الاستجابات الناجحة مؤقتًا.
  • اعرض المصدر ووقت الرصد.

الخطوة 1

مثال برمجي
require "net/http"require "json"class ExchangeRateClient  Error = Class.new(StandardError)  def convert(from:, to:, amount:)    from = from.to_s.upcase    to = to.to_s.upcase    raise Error, "invalid currency code" unless [from, to].all? { |code| code.match?(/A[A-Z]{3}z/) }    key = ["fx-convert", from, to, amount.to_d.to_s("F")]    Rails.cache.fetch(key, expires_in: 60.seconds) do      uri = URI("https://api.exchangerate.dev/v1/convert/#{from}/#{to}/#{amount}")      request = Net::HTTP::Get.new(uri)      request["Authorization"] = "Bearer #{ENV.fetch("EXCHANGERATE_API_KEY")}"       response = Net::HTTP.start(uri.host, uri.port, use_ssl: true,        open_timeout: 2, read_timeout: 5) { |http| http.request(request) }      raise Error, "exchange-rate API returned #{response.code}" unless response.is_a?(Net::HTTPSuccess)      JSON.parse(response.body)    end  rescue Net::OpenTimeout, Net::ReadTimeout => error    raise Error, "exchange-rate API timed out: #{error.class}"  endend

الخطوة 2

مثال برمجي
class ConversionsController < ApplicationController  def show    amount = BigDecimal(params.require(:amount))    result = ExchangeRateClient.new.convert(      from: params.require(:from).upcase,      to: params.require(:to).upcase,      amount: amount    )    render json: result.slice("from", "to", "amount", "rate", "converted",      "source", "market_session", "data_updated_at")  rescue ExchangeRateClient::Error, ArgumentError => error    render json: { error: error.message }, status: :bad_gateway  endend

الخطوة 3

نفّذ هذا النمط على الخادم، وتحقق من المدخلات، واحتفظ ببيانات الاستجابة.

الخطوة 4

نفّذ هذا النمط على الخادم، وتحقق من المدخلات، واحتفظ ببيانات الاستجابة.

دليل

هذه أسعار إرشادية وليست أسعار تسوية.

أسئلة

واجهة أسعار الصرف لـ Ruby on Rails

يتيح دمج تحويل العملات والأسعار الإرشادية عبر عقد JSON موثق.

تابع القراءة

ابدأ بمفتاح API مجاني

5,000 طلب شهريًا ضمن الخطة المجانية. لا حاجة إلى بطاقة ائتمان.

احصل على مفتاح مجاني