PHP ve Laravel ile döviz kurları

Laravel HTTP istemcisi, bearer auth, zaman aşımı ve güncellik alanlarıyla kurları alın ve önbelleğe koyun; exchangerate.dev anahtarı sunucuda kalsın.

exchangerate.devJul 17, 20266 dk okuma

Laravel servisi hatalı yanıtları reddeder ve tam FX gözlemini 60 saniye saklar. Anahtarı yapılandırmada tutun; source, market_session ve data_updated_at alanlarını kurla döndürün.

Önemli noktalar
Bearer auth, zaman aşımı ve throw() kullanın.
Tam başarılı yanıtı 60 saniye önbelleğe alın.
Anahtarı EXCHANGERATE_API_KEY üzerinden okuyun.
Kesin hesaplarda ondalık kitaplığı kullanın.

Önbellekli FX servisi kurun

Servis, taban ve sıralı sembollerden sabit bir anahtar üretir. throw() önbelleğe yazmadan önce çalışır.

php · app/Services/ExchangeRateService.php
<?php

namespace App\Services;

use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Http;

final class ExchangeRateService
{
    public function latest(string $base, array $symbols): array
    {
        sort($symbols);
        $symbolList = implode(',', $symbols);
        $cacheKey = "fx:latest:{$base}:{$symbolList}";

        return Cache::remember($cacheKey, now()->addSeconds(60), function () use (
            $base,
            $symbolList,
        ): array {
            return Http::acceptJson()
                ->withToken(config('services.exchangerate.key'))
                ->timeout(5)
                ->get(
                    "https://api.exchangerate.dev/v1/latest/{$base}",
                    ['symbols' => $symbolList],
                )
                ->throw()
                ->json();
        });
    }
}

Anahtarı kaynak kod dışında ayarlayın

php · config/services.php and .env
// config/services.php
'exchangerate' => [
    'key' => env('EXCHANGERATE_API_KEY'),
],

// .env (never commit the real value)
EXCHANGERATE_API_KEY=exr_live_...

Kuru ve gözlem alanlarını okuyun

$service->latest("USD", ["EUR", "GBP"]) sonrası $result["rates"]["EUR"] değerini ve kaynak alanlarını koruyun.

Hataları kur olarak saklamayın
401 anahtar hatası, 429 limit aşımıdır. Eski gözlemi yalnızca özgün zamanı ile tutun.
  • Sembolleri sıralayın.
  • Zaman aşımı belirleyin.
  • JSON öncesi throw çağırın.
  • Nihai tutarı yuvarlayın.
ER
exchangerate.dev
FX verileriyle çalışan geliştiriciler için entegrasyon rehberleri.

Okumaya devam edin