가이드가이드

Ruby on Rails용 환율 API

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

2026년 9월 20일 · 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용 환율 API

문서화된 JSON 계약으로 통화 변환과 참고용 환율을 앱에 추가할 수 있습니다.

계속 읽기

무료 API 키로 시작하세요

무료 플랜으로 월 5,000건 요청 가능. 신용카드는 필요하지 않습니다.

무료 키 받기