튜토리얼/Ruby on Rails용 환율 API

Ruby on Rails용 환율 API

Ruby on Rails용 환율 API. 코드, 캐시, 최신성 메타데이터를 포함한 실용 가이드입니다.

ERexchangerate.dev·Sep 20, 2026·7분 분량

자격 증명을 노출하지 않고 서버에서 구현하며 출처와 관측 시각을 보존합니다.

핵심 요점
API 키는 서버에만 보관합니다.
통화 코드와 금액을 검증합니다.
성공한 응답을 캐시합니다.
출처와 관측 시각을 표시합니다.

단계 1

코드 예제copy
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}"
  end
end

단계 2

코드 예제copy
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
  end
end

단계 3

서버에서 실행하고 입력값을 검증하며 응답 메타데이터를 보존하세요.

단계 4

서버에서 실행하고 입력값을 검증하며 응답 메타데이터를 보존하세요.

가이드
이 환율은 참고용이며 결제 가격이 아닙니다.
ER
exchangerate.dev
통화 데이터를 사용하는 개발자를 위한 실용 가이드입니다.

계속 읽기

가이드개발자를 위한 통화 변환 API읽기 가이드Exchange rates for accounting software읽기