PanduanTutorial

API kurs untuk Ruby on Rails

API kurs untuk Ruby on Rails. Panduan praktis dengan kode, cache, dan metadata kesegaran.

20 Sep 2026 · 7 menit baca

Terapkan di server tanpa membocorkan kredensial serta simpan sumber dan waktu observasi.

  • Simpan kunci API hanya di server.
  • Validasi kode mata uang dan jumlah.
  • Cache respons yang berhasil.
  • Tampilkan sumber dan waktu observasi.

Langkah 1

Contoh kode
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

Langkah 2

Contoh kode
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

Langkah 3

Jalankan di server, validasi input, dan simpan metadata dari respons.

Langkah 4

Jalankan di server, validasi input, dan simpan metadata dari respons.

Panduan

Kurs ini bersifat indikatif, bukan harga penyelesaian.

Pertanyaan

API kurs untuk Ruby on Rails

Menambahkan konversi mata uang dan kurs indikatif melalui kontrak JSON terdokumentasi.

Baca selanjutnya

Mulai dengan kunci API gratis

5.000 permintaan per bulan dengan paket gratis. Tanpa kartu kredit.

Dapatkan kunci gratis