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
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
// 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.
