GuíasTutoriales

API de tipos de cambio para Ruby on Rails

API de tipos de cambio para Ruby on Rails. Guía práctica con código, caché y metadatos de frescura.

20 sept 2026 · 7 min de lectura

Implementa esta integración en el servidor sin exponer credenciales y conserva la fuente y la hora de observación.

  • Mantén la clave API en el servidor.
  • Valida códigos de moneda e importes.
  • Almacena en caché las respuestas correctas.
  • Muestra la fuente y la hora de observación.

Paso 1

Ejemplo de código
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

Paso 2

Ejemplo de código
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

Paso 3

Ejecuta este patrón en el servidor, valida las entradas y conserva los metadatos de la respuesta.

Paso 4

Ejecuta este patrón en el servidor, valida las entradas y conserva los metadatos de la respuesta.

Guía

Estos tipos son indicativos y no son precios de liquidación.

Preguntas

API de tipos de cambio para Ruby on Rails

Permite integrar conversiones y tipos de cambio indicativos mediante un contrato JSON documentado.

Sigue leyendo

Empieza con una clave API gratuita

5.000 solicitudes al mes con el plan gratuito. Sin tarjeta de crédito.

Obtén una clave gratuita